bz2文件压缩问题
当我们压缩文件夹时,我们输入命令 tar -cjffolder.tar.bz2folder,它将整个文件夹压缩到其中。
是否有办法压缩文件夹中的所有内容,但该文件夹不应出现在存档中?
示例 - 打开存档时,将显示文件夹内的文件而不是整个文件夹。
When we compress a folder, we type the command tar -cjf folder.tar.bz2 folder, it compresses the entire folder into it.
Is there anyway to compress everything within the folder but the folder should not appear in the archive?
Example- when open the archive, the files within the folder will appear instead of the entire folder.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用 tar 的 -C 参数
我在我的电脑上尝试过这个并且它有效;)
Use -C parameter of tar
I tried this in my PC and it worked ;)
应该这样做:
最后的
*
被 shell 扩展为当前目录中所有文件(隐藏文件除外)的列表。尝试echo *
。对于隐藏文件,有两种可能的方法:
使用
ls
命令及其-A
选项(列出“几乎所有”文件,即除之外的所有文件)此目录和父目录的 >.
和..
条目。cd 文件夹; tar -cjf ../folder.tar.bz2 $(ls -A)
使用通配符表达式(请注意,这在破折号中不起作用,并且当任何模式不匹配时,您将在参数列表中逐字获得它)
cd 文件夹; tar -cjf ../folder.tar.bz2 * .[^.]* ..?*
This should do it:
The
*
at the end gets expanded by the shell to the list of all files (except hidden) in the current directory. Tryecho *
.For hidden files, there are two possible approaches:
Use the
ls
command with its-A
option (list "almost all" files, that is all except.
and..
entries for this and parent directory.cd folder; tar -cjf ../folder.tar.bz2 $(ls -A)
Use wildcard expressions (note that this doesn't work in dash, and, when any of the patterns doesn't match, you'll get it verbatim in the argument list)
cd folder; tar -cjf ../folder.tar.bz2 * .[^.]* ..?*
我认为您所指的只是 cd 文件夹; tar -cjf ../folder.tar.bz2 * .[^.]*,但我可能是错的。这会将文件名置于生成的存档中的顶层,而不是放在
folder/
之后。I think what you're referring to is simply
cd folder; tar -cjf ../folder.tar.bz2 * .[^.]*
, but I could be wrong. This places the filenames at the top level in the resulting archive, as opposed to afterfolder/
.tar -jcvf文件夹.tar.bz2文件夹/*
tar -jcvf folder.tar.bz2 folder/*