我通常这样做:
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
当前回答
如果它是Unix/Linux系统,并且你关心隐藏文件(会被*漏掉),你需要做:
cd my_directory
tar zcvf ../my_directory.tar.gz * .??*
我不知道Windows下的隐藏文件是什么样子。
其他回答
如果它是Unix/Linux系统,并且你关心隐藏文件(会被*漏掉),你需要做:
cd my_directory
tar zcvf ../my_directory.tar.gz * .??*
我不知道Windows下的隐藏文件是什么样子。
使用pax。
Pax是一个被弃用的包,但它以一种简单的方式完美地完成了这项工作。
pax -w > mydir.tar mydir
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
不客气
tar -czvf mydir.tgz -C my_dir/ `ls -A mydir`
运行它比mydir高一级。 这将不包括任何[。之类的。
# tar all files within and deeper in a given directory
# with no prefixes ( neither <directory>/ nor ./ )
# parameters: <source directory> <target archive file>
function tar_all_in_dir {
{ cd "$1" && find -type f -print0; } \
| cut --zero-terminated --characters=3- \
| tar --create --file="$2" --directory="$1" --null --files-from=-
}
安全处理包含空格或其他不寻常字符的文件名。您可以选择添加一个名称'*。Sql '或类似于find命令的过滤器来限制包含的文件。