自动生成/备份文件列表(但不备份实际文件)?

自动生成/备份文件列表(但不备份实际文件)?

对于像我这样的非技术人员来说,最好的/最简单的方法是什么,让我的无头 Ubuntu 媒体服务器生成一个文件,其中包含来自特定文件夹的 X 级文件列表,并备份该列表,而无需实际备份文件本身?理想情况下(但绝不是必需的)它将是一个格式良好的 HTML 页面……但前提是存在一些可以执行此类操作的现有工具。我不指望回答者为我编写大量代码。

我安装了 Crashplan,但我不想使用带宽将数 TB 的非关键文件移动到云端。但在极少数情况下,我希望至少能看到一份文件列表,这样我就能知道丢失了什么,并可以选择要替换的内容。

我希望答案是完整的,因为我绝不是命令行大师......并且它确实需要是命令行,因为它是无头的。

答案1

您可以使用tree。它可能未预安装,因此请使用

sudo apt-get install tree

然后,您只需运行即可获取文件及其目录结构的列表

$ tree test/
test/
├── dir1
│   ├── file1
│   ├── file2
│   └── file3
├── dir2
│   ├── file1
│   ├── file2
│   └── file3
└── dir3
    ├── file1
    ├── file2
    └── file3

您可以将输出重定向到这样的文件:

tree test/ > directory-list.txt

您可以使用选项限制递归深度-L,例如tree -L 3 test/

如果您想要一个包含指向每个文件的 FTP 链接的精美 HTML 页面,那么tree它已经内置了!

tree -H /ftp-root test/ > directory-list.html

您需要指定一个基本链接,它将控制所有文件超链接指向的位置,如手册页(man tree)中所述:

   -H baseHREF
          Turn  on  HTML output, including HTTP references. Useful for ftp
          sites.  baseHREF gives the base ftp  location  when  using  HTML
          output.  That  is,  the local directory may be `/local/ftp/pub',
          but  it  must   be   referenced   as   `ftp://hostname.organiza‐
          tion.domain/pub'  (baseHREF  should be `ftp://hostname.organiza‐
          tion.domain'). Hint: don't use ANSI lines with this option,  and
          don't give more than one directory in the directory list. If you
          wish to use colors via CCS style-sheet, use  the  -C  option  in
          addition to this option to force color output.

在网络浏览器中打开的结果文件如下所示:

在此处输入图片描述

答案2

find是你的朋友。

假设您想要备份所有文件名,最多 4 层深度,从/foo/bar目录开始,到一个文件中backup_filenames.txt

find /foo/bar -maxdepth 4 -type f >backup_filename.txt

要仅考虑特定扩展名的文件名,例如.txt,使用-name

find /foo/bar -maxdepth 4 -type f -name '*.txt' >backup_filename.txt

不区分大小写 ( -iname):

find /foo/bar -maxdepth 4 -type f -iname '*.txt' >backup_filename.txt

修改参数以满足您的需要。另请查看man find

相关内容