我想以Folder/Folder
格式打印。
而不是完整路径:
/volume1/ArtWork/Folder1/folderA
/volume1/ArtWork/Folder1/folderB
/volume1/ArtWork/Folder2/folderA
/volume1/ArtWork/Folder2/folderA
我想用txt"半路径打印" (不仅是文件名!):
Folder1/folderA
Folder1/folderB
Folder2/folderA
Folder2/folderA
这就是我目前使用的:
find /volume1/ArtWork/* -type d -maxdepth 2 \
-not -empty -printf '%f\n' \
> /volume1/ArtWork/filenamesdir.txt
(我想打印非空文件夹,但目前格式错误)
答案 0 :(得分:0)
我建议在运行find
命令之前导航到该文件夹。使用-printf '%P\n'
,您可以打印感兴趣的部分,每个部分都在一个单独的行上:
pushd /volume1/ArtWork
find . -type d -maxdepth 2 -not -empty -printf '%P\n'
popd
请注意,我使用pushd
/ popd
代替cd
。这使得更改为目录并返回上一个更方便。
答案 1 :(得分:0)
这样做:
find /volume1/ArtWork/* -maxdepth 2 -type d \
-exec sh -c 'echo $0 | grep -o "[^/]*/[^/]*$"' {} \; \
> /volume1/ArtWork/filenamesdir.txt
答案 2 :(得分:0)
这是一个gnu-sed版本:
find /your/path -mindepth 1 -type d -print0 |
xargs -0 -I{} bash -c 'sed -r "s/.*\/(.*\/.*)$/\1/" <<<"{}"'