我通常这样做:
tar -czvf my_directory.tar.gz my_directory
如果我只想在my_directory中包含所有内容(包括任何隐藏的系统文件),而不包括目录本身,该怎么办?我不想:
my_directory
--- my_file
--- my_file
--- my_file
我想要:
my_file
my_file
my_file
我通常这样做:
tar -czvf my_directory.tar.gz my_directory
如果我只想在my_directory中包含所有内容(包括任何隐藏的系统文件),而不包括目录本身,该怎么办?我不想:
my_directory
--- my_file
--- my_file
--- my_file
我想要:
my_file
my_file
my_file
当前回答
cd my_directory && tar -czvf ../my_directory.tar.gz $(ls -A) && cd ..
这个方法对我很有用,它包含了所有隐藏文件,而不用把所有文件放在一个名为“。”的根目录中,就像tomoe的回答:
其他回答
使用tar的-C开关:
tar -czvf my_directory.tar.gz -C my_directory .
-C my_directory命令告诉tar将当前目录更改为my_directory,然后。意思是“添加整个当前目录”(包括隐藏文件和子目录)。
确保在执行之前执行-C my_directory。否则,您将获得当前目录中的文件。
警告:你会得到。/file-name格式的条目。Ext而不是file-name.ext!
如果需要file-name形式的条目。然后,阅读其他答案。
tar -cvzf tarlearn.tar.gz --remove-files mytemp/*
如果文件夹是mytemp,那么如果你应用上面的方法,它会压缩并删除文件夹中的所有文件,但不要管它
tar -cvzf tarlearn.tar.gz --remove-files --exclude='*12_2008*' --no-recursion mytemp/*
您可以给出排除模式,也可以指定不查看子文件夹
cd DIRECTORY
tar -czf NAME.tar.gz *
星号将包括所有内容,甚至包括隐藏的内容
function tar.create() {
local folder="${1}"
local tar="$(basename "${folder}")".tar.gz
cd "${folder}" && tar -zcvf "../${tar}" .; cd - &> /dev/null
}
例子:
tar.create /path/to/folder
不客气
cd my_directory
tar zcvf ../my_directory.tar.gz *