如果我不find ./
,我得到类似的结果:截断发现./命令
/Volumes/FulfilmentArray//.Trashes/1060/ffmpeg2pass-0.log.mbtree.temp
有没有办法做find ./
命令仅返回文件名和容器文件夹?在上述情况下,这将是:
1060/ffmpeg2pass-0.log.mbtree.temp
如果我不find ./
,我得到类似的结果:截断发现./命令
/Volumes/FulfilmentArray//.Trashes/1060/ffmpeg2pass-0.log.mbtree.temp
有没有办法做find ./
命令仅返回文件名和容器文件夹?在上述情况下,这将是:
1060/ffmpeg2pass-0.log.mbtree.temp
find ./ | rev | cut -d/ -f-2 | rev
一点解释可能会很长的路要走。使用的命令:
所以前面的代码是干什么用一个例子如下:
打印出到当前目录下的所有文件的相对路径
./Machine Learning - Stanford/Self-notes/08-10.txt
逆转路径字符串
txt.01-80/seton-fleS/drofnatS - gninraeL enihcaM/.
剪切在第二正斜杠离开第一部分(以使包括文件名和包含的文件夹,相对于其中在其中找到该文件夹被执行于)
txt.01-80/seton-fleS --separated here-- /drofnatS - gninraeL enihcaM/.
反转结果字符串
Self-notes/08-10.txt
find ./ | rev | cut -d/ -f-2 | rev
我敢肯定,AWK可能被交换出去的sed。因为你说过文件名,所以我添加了“-type f”标志,但是如果你想要目录,只需删除它。
find ./ -type f|awk -F'/' '{ print $(NF-1)"/"$NF }'
这可能是去做一个办法:
find . | awk -F "/" '{ if (NF > 2) { print $(NF-1) "/" $NF; } else { print $NF; }}'
谢谢。这是否需要比普通的find命令更长的时间?我需要在大约1M个文件的卷上运行此操作。 – David542
在'。/ file'等结果的情况下引导斜线,即当前目录中的文件。 – favoretti
@ David542长约1-2秒。与时间查找相比,不是一个因素。 :) – Perleone