我一直被困在一个小的unix命令行问题上.
我有一个网站文件夹(4gb)我需要获取一份副本,但只有.php,.html,.js和.css文件(只有几百kb).
理想情况下,有一种方法可以压缩或tar整个文件夹,但只能抓取某些文件扩展名,同时保留子文件夹结构.这是可能的,如果是的话,怎么样?
我确实尝试做一个完整的拉链,然后通过并排除某些文件,但它似乎有点过分.
我是unix的新手.
任何想法将不胜感激.
Cur*_*ker 67
切换到网站文件夹,然后运行
zip -R foo '*.php' '*.html' '*.js' '*.css'
Run Code Online (Sandbox Code Playgroud)
您也可以从网站文件夹外部运行:
zip -r foo website_folder -i '*.php' '*.html' '*.js' '*.css'
Run Code Online (Sandbox Code Playgroud)
Nic*_*ick 21
您可以使用find和grep生成文件列表,然后将其输入zip
例如
find . | egrep "\.(html|css|js|php)$" | zip -@ test.zip
Run Code Online (Sandbox Code Playgroud)
(-@告诉zip从stdin读取文件列表)
这就是我设法做到的,但我也喜欢ghostdog74的版本.
tar -czvf archive.tgz `find test/ | egrep ".*\.html|.*\.php"`
Run Code Online (Sandbox Code Playgroud)
您可以通过将其添加到正则表达式来添加额外的扩展.