以前我问过一个非常类似的问题,但它只是针对一个子目录在linux命令行中将子目录中的文件写入csv文件并将其保存到父目录。我有一个名为“dir”的目录,其中有 5 个子目录,sub1、sub2、..sub5。每个子目录下都有很多文件。我想将所有子目录中的文件列表写入 CSV 文件,并使用 Linux 上的命令行将其保存到“dir”目录中。我的代码就是这样做的,除了我只想要文件名(name1,name2等),但它用路径(./sub1/name1,./sub1/name2等)写入完整的文件名。我在 dir 文件夹中使用的命令行是;
dir$ find . -type f > names.csv
答案1
既然你已经将你的问题标记为“Linux”,我假设你有 GNU find
- 在这种情况下你可以使用
find . -type f -printf '%f\n' > names.csv
从man find
:
%f File's name with any leading directories removed (only the last element).
答案2
dir$ find . -type f -execdir basename {} \; > names.csv
解释
-execdir
对每个结果执行以下命令。basename {} \;
删除final之前的部分/
。{}
找到的每个目录的替代品。请参阅man find
获取更多信息。