以下是文件夹结构 - home / ABCD / test1 / example1 / sample1 / textfile.txt
如果我执行查找命令,如
find /home/ABCD/ -type f -print
我收到以下输出
/home/ABCD/test1/example1/sample1/textfile.txt
注意:我正在执行来自ABCD文件夹的find命令,在结果中我要排除/ home / ABCD /文件夹我只想要 / test1 / example1 / sample1 / testfile .txt 作为结果
我怎样才能做到这一点?
答案 0 :(得分:1)
由于您正在执行来自/home/ABCD/
的查找,请执行以下操作:
find * -type f -print
或者,如果您要在test1
中查找文件,请执行以下操作:
find test1 -type f -print
同样使用-maxdepth N
,您可以限制查找
如果您只想查找名为textfile.txt
的文件
find test1 -type f -name 'textfile.txt' -print
如果要打印前导斜杠
find . -type f -printf '/%p\n'
有关详情,请查看here
注意:如果在变量中包含上述字符串,则可以像这样修剪它:
string="/home/ABCD/test1/example1/sample1/textfile.txt"
echo "${string#/home/ABCD}"
字符串操作的更多示例here
答案 1 :(得分:1)
只需使用.
作为起始目录
find . -type f -print
给出
./ TEST1 /例1 / SAMPLE1 / TextFile.txt的
如果你真的想要一个前导斜杠,请使用-printf
作为输出
find . -type f -printf '/%P\n'
答案 2 :(得分:0)
您可以使用mindepth
参数开始查看当前目录下的一个级别
find /home/ABCD/ -mindepth 1 -type f -print
答案 3 :(得分:0)
这应该使用。
替换当前的工作目录名称find . -type f | perl -pne "s#$PWD#.#"
所以你会得到如下结果: ./test1/example1/sample1/textfile.txt
如果您不想使用前面的./,请改用此命令:
find . -type f | perl -pne "s#$PWD/##"