关于bash:查找命令和半路径

Find command and semi-path

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
5
/volume1/Folder/0000/AAA/one
/volume1/Folder/0001/AAA/two
/volume1/Folder/0001/BBB/three
/volume1/Folder/0002/CCC/four
...

我想获得一个.txt文件,包含所有非空文件夹目录。 但是我想要在没有/volume1/Folder/的情况下编写这个文件,即我想像这样打印它:

1
2
3
4
5
0000/AAA/one
0001/AAA/two
0001/BBB/three
0002/CCC/four
...

这是我正在使用的代码,但这是写完整的路径(我知道通过添加-printf'%f n'它只写入最后一个文件夹,但我不想要那个!)

1
 find /volume1/Folder/* -mtime -1 -type d -maxdepth 2 -not -empty > /volume1/Folder/NotEmptyFolders.txt

有人能帮我吗?


如果您不想将输出传递给另一个命令(如sed),请尝试此操作

1
find /volume1/Folder/* -mtime -1 -type d -maxdepth 2 -not -empty -exec bash -c 'echo ${0#/volume1/Folder/}' {} \; > /volume1/Folder/NotEmptyFolders.txt

但是这又创建了一个新shell(bash -c)而你可以做|并使用其他命令如sed / awk来删除/volume1/Folder/