在当前目录和子目录中查找文件类型,包括隐藏文件。 (家庭作业)
Finding a filetype in current directory and subdirectory, including hidden files. (Homework)
使用bash,我需要找到当前目录和子目录中的所有gif,并以特定方式显示它们。我还必须包括隐藏文件,并且不允许使用 grep(或其子公司 - fgrep 等)或 basename。我是 运行 Ubuntu 14.04 通过虚拟机(如果重要的话通过 Vagrant 的 VirtualBox)没有 GUI。我当前的脚本如下所示:
#!/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
使用bash,我需要找到当前目录和子目录中的所有gif,并以特定方式显示它们。我还必须包括隐藏文件,并且不允许使用 grep(或其子公司 - fgrep 等)或 basename。我是 运行 Ubuntu 14.04 通过虚拟机(如果重要的话通过 Vagrant 的 VirtualBox)没有 GUI。我当前的脚本如下所示:
#!/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