linux - 在当前目录和子目录中查找文件类型,包括隐藏文件。 (家庭作业)

标签 linux bash ubuntu find ubuntu-14.04

使用 bash,我需要找到当前目录和子目录中的所有 gif,并以特定方式显示它们。我还必须包括隐藏文件,并且不允许使用 grep(或其子公司 - fgrep 等)或 basename。我正在通过没有 GUI 的虚拟机(如果重要的话,通过 Vagrant 的 VirtualBox)运行 Ubuntu 14.04。我当前的脚本如下所示:

#!/bin/bash
ls -a | find $directory -type f -name "*.gif" | rev | cut -d/ -f1 | rev | cut -d. -f1 | sort -f

这基本上完成了我需要的,特别是在格式化方面,但是当我将其中一个 gif 更改为隐藏文件时,它不再可见 - 有一个额外的空行,几乎就像文件名一样用隐形墨水写的。有谁知道它为什么这样做?

最佳答案

目前还不清楚您要实现的目标。

正如 lurker 在评论中所说 cut -d。 -f1 将使任何以 . 开头的行成为空行。

根据你的代码,我能想到的最接近的是

find $directory -type f -iname '*.gif' | rev | cut -d/ -f1 | cut -d. -f2,3 | rev | sort -f

给你所有的 gif,隐藏与否,没有路径或扩展名。

例子

user@host /tmp % ls -aR
.:
.  ..  subdirectory  .test.gif  test.gif

./subdirectory:
.  ..  .sub.gif  sub.gif
user@host /tmp % find . -type f -iname '*.gif' | rev | cut -d/ -f1 | cut -d. -f2,3 | rev | sort -f
sub
.sub 
test
.test

关于linux - 在当前目录和子目录中查找文件类型,包括隐藏文件。 (家庭作业),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48234581/

相关文章:

ubuntu - gedit - FTP 编辑保持事件状态

regex - Grep 获取单行注释,但排除 http ://example. com 等内容

c++ - C/C++ 相当于 Bash "readlink -f"

linux - 如何更新/检查ubuntu内核配置?

c - 为什么我需要使用 mpicc

linux - 如何在 bash 中添加列索引

ubuntu - 无法在 ubuntu 10.04 上启动 rabbitmq 服务器

python - Ubuntu 16.04 LTS中tensorflow安装错误

mysql - 不同的 MySQL 版本有什么关系?

linux - 不同行的 IF 语句