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

时间:2018-01-12 21:58:57

标签: linux bash ubuntu find ubuntu-14.04

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

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

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

1 个答案:

答案 0 :(得分:0)

你想要达到的目标不是很清楚。

正如潜伏者在评论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