如果我find ./
,我得到的结果类似于:
/Volumes/FulfilmentArray//.Trashes/1060/ffmpeg2pass-0.log.mbtree.temp
有没有办法让find ./
命令只返回文件名和容器文件夹?在上述情况下,它将是:
1060/ffmpeg2pass-0.log.mbtree.temp
答案 0 :(得分:2)
find ./ | rev | cut -d/ -f-2 | rev
答案 1 :(得分:2)
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
答案 2 :(得分:1)
我确定awk可以替换为sed。我添加了“-type f”标志,因为你说的是文件名,但是如果你也想要目录,那就把它删除吧。
find ./ -type f|awk -F'/' '{ print $(NF-1)"/"$NF }'
答案 3 :(得分:0)
这可能是一种解决方法:
find . | awk -F "/" '{ if (NF > 2) { print $(NF-1) "/" $NF; } else { print $NF; }}'