我正在尝试索引一些 LTO 磁带(以及一些硬盘),并且想要一个存储在文本文件中的简单输出。就像下面的例子:
...
/home/norg/Desktop/empty\ dir/
/home/norg/Documents/file.txt
...
“empty dir”文件夹当然是一个空文件夹。请注意“桌面”和“文档”等文件夹是如何打印的,因为它们里面有内容。换句话说,/home/norg/Desktop/
永远不会被打印,除非它是空的。
我尝试过类似的方法ls -RFad /home/norg/
和一些find
语法,取得了不同程度的成功。最棘手的部分是打印空目录,但不打印完整目录。我希望这是有道理的。谢谢。
另一件事要提的是,我真的更喜欢它一次性工作,因为我将使用它与磁带,并希望尽可能少地读取以减少磨损。
答案1
find /home/norg \( -type d -empty \) -o -type f
这将列出下面的空目录和常规文件/home/norg
。
尽管问题标题提到“包含文件的目录”,但根据问题文本,这些目录不会打印为项目。
另请注意,它仅打印常规文件。如果您有例如 fifo 或设备,这些将不会出现(如果您有一个仅包含设备的文件夹,也不会打印它)。如果您还想包含它们,您可以使用
find \( -type d -empty \) -o -not -type d