Bash 查找命令和半路径

Bash 查找命令和半路径,bash,Bash,我想得到一个.txt文件,其中包含所有非空文件夹和目录。但是我希望这个文件不使用/volume1/Folder/,也就是说,我想这样打印它: /volume1/Folder/0000/AAA/one /volume1/Folder/0001/AAA/two /volume1/Folder/0001/BBB/three /volume1/Folder/0002/CCC/four ... 这是我正在使用的代码,但这是在写入完整路径(我知道通过添加-printf“%f\n”它只写入最后一个文件夹,但

我想得到一个.txt文件,其中包含所有非空文件夹和目录。但是我希望这个文件不使用
/volume1/Folder/
,也就是说,我想这样打印它:

/volume1/Folder/0000/AAA/one
/volume1/Folder/0001/AAA/two
/volume1/Folder/0001/BBB/three
/volume1/Folder/0002/CCC/four
...
这是我正在使用的代码,但这是在写入完整路径(我知道通过添加-printf“%f\n”它只写入最后一个文件夹,但我不希望这样!)


有人能帮我吗?

如果您不想通过管道将输出传输到另一个命令,如
sed

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

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

很好,它可以工作。唯一的问题是,它正在编写所有路径,而没有为每个路径创建新行。您知道如何修复它吗?在这种情况下,使用sed/awk over find是很有必要的。您是否在将输出重定向到文件后看到了同一行中的所有内容,或者您将所有内容分配给了variable?我不确定我是否理解您的问题。我没有使用cmd行,我使用的是任务调度器,因此我无法在不写入输出的情况下进行检查。使用主要文章的代码,它在不同的行中编写所有路径,而您的不是,它们都在sameI中。我已经更新了我的更改,将输出重定向到文件(类似于您的原始代码)。。检查更新代码。。
 find /volume1/Folder/* -mtime -1 -type d -maxdepth 2 -not -empty > /volume1/Folder/NotEmptyFolders.txt
find /volume1/Folder/* -mtime -1 -type d -maxdepth 2 -not -empty -exec bash -c 'echo ${0#/volume1/Folder/}' {} \; > /volume1/Folder/NotEmptyFolders.txt