linux shell FAQ

本文介绍了tar命令在处理文件归档时常见的问题及其解决办法,并详细解释了如何使用分界符EOF进行脚本编写,此外还提供了一个批量修改文件后缀名的实用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、tar命令 tar: /mnt/raid5/pgsql/data:归档中找不到 问题

在压缩文件时,当后面的备份目录使用绝对路径时,会出现:

[root@device ~]# tar -zxvf /mnt/raid5/pgsql/data201704.tar.gz /mnt/raid5/pgsql/data
tar: /mnt/raid5/pgsql/data:归档中找不到
tar: 由于前次错误,将以上次的错误状态退出

解决方式1:在压缩时增加-P(大写)参数即可。

需要注意的是:
-P为递归目录,所以解压时也需要增加-P参数,或者再根目录进行解压

解决方案2:压缩和解压时都使用相对路径即可:

tar -zcvf data201704.tar.gz data

tar -zxvf data201704.tar.gz data

2、分界符EOF使用

  在shell编程中,”EOF“通常与”<<“结合使用,“<<EOF“表示后续的输入作为子命令或子shell的输入,直到遇到”EOF“,再次返回到主调shell,可将其理解为分界符(delimiter)。既然是分界符,那么形式自然不是固定的,这里可以将”EOF“可以进行自定义,但是前后的”EOF“必须成对出现且不能和shell命令冲突。其使用形式如下:
交互式程序(命令)<<EOF
command1
command2
...
EOF
       ”EOF“中间的内容将以标准输入的形式输入到”交互式程序“,当shell看到”<<“知道其后面输入的分界符,当shell再次看到分界符时,两个分界符中间的部分将作为标准输入。
       "EOF"一般常和cat命令连用。
注意,最后的”EOF“必须单独占一行。

3、批量添加文件后缀名

for i in * ; do mv $i $i".jpg" ; done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值