Vin*_*oCM 5 php command-line tar
场景:我在托管我的网站的服务器上有一个目录,其中包含数百个用户提交的图像.我正在创建一个备份脚本,它从目录中获取所有图像并将它们压缩成一个.tar.gz文件.我到目前为止的命令是:
tar -czpf /path/to/backups/my_backup.tar.gz path/to/images/
问题:我的路径中没有//images /我有一个名为tmp /的目录.当我运行命令时,我得到一个.tar.gz文件,其中包含path/to/images /目录中的所有图像和一个名为tmp /的子目录.
问题:如何让命令跳过/不包含.tar.gz文件中的tmp /子目录.
提前一百万谢谢.
jas*_*son 12
你正在寻找这个--exclude论点.
--exclude=PATTERN
Run Code Online (Sandbox Code Playgroud)
一些用户发现exclude选项令人困惑.以下是一些常见的陷阱:
tar如果排除了其中一个文件名组件,则主操作模式不会对命令行中明确列出的路径名执行操作.在上面的示例中,如果您创建存档并排除以列出所有选项*.o但以明确命名文件的文件dir.o/foo,
dir.o/foo则将从存档中排除.
你有时会混淆--exclude=PATTERN和
--exclude-from=FILE-OF-PATTERNS(-X FILE-OF-PATTERNS)的含义.注意:--exclude=PATTERN当要排除的文件在命令行中作为模式给出时使用.使用
--exclude-from=FILE-OF-PATTERNS介绍其中包含的模式,每行一个列表的文件的名称; 这些模式中的每一个都可以排除零个,一个或多个文件.
使用时--exclude=PATTERN,请务必引用PATTERN参数,以便GNU tar看到通配符等*.如果你不这样做,shell可能会*使用手边的文件扩展自己,因此tar可能会收到一个文件列表而不是一个模式,或者根本没有,这使命令有些违法.这可能与您想要的不符.
例如,写:
$ tar -c -f ARCHIVE.TAR --exclude '*.o' DIRECTORY
Run Code Online (Sandbox Code Playgroud)
而不是:
$ tar -c -f ARCHIVE.TAR --exclude *.o DIRECTORY
Run Code Online (Sandbox Code Playgroud)
regexp
在使用排除选项时,必须使用use shell语法或globbing,而不是语法tar.如果您尝试使用
regexp语法来描述要排除的文件,那么您的命令可能会失败.| 归档时间: |
|
| 查看次数: |
10452 次 |
| 最近记录: |