在 CentOS 里你说的 “extract” 一般指的是自动解压文件(tar / zip / rar 等)。下面按常见场景给你几种自动化方案,你可以直接挑用。
#!/bin/bash
for f in *.tar.gz *.tgz *.tar.bz2 *.zip *.rar; do
case "$f" in
*.tar.gz|*.tgz) tar -xzf "$f" ;;
*.tar.bz2) tar -xjf "$f" ;;
*.zip) unzip "$f" ;;
*.rar) unrar x "$f" ;;
esac
done
保存为 extract.sh
chmod +x extract.sh
./extract.sh
把下面内容加到 ~/.bashrc
extract() {
if [ -f "$1" ]; then
case "$1" in
*.tar.gz|*.tgz) tar -xzf "$1" ;;
*.tar.bz2) tar -xjf "$1" ;;
*.tar.xz) tar -xJf "$1" ;;
*.zip) unzip "$1" ;;
*.rar) unrar x "$1" ;;
*.7z) 7z x "$1" ;;
*) echo "不支持的格式: $1" ;;
esac
else
echo "$1 不是文件"
fi
}
使用:
extract xxx.tar.gz
比如每天凌晨解压 /data/inbox 里的文件:
crontab -e
添加:
0 0 * * * /data/extract.sh >> /var/log/extract.log 2>&1
适合文件一进来就解压
yum install inotify-tools -y
#!/bin/bash
DIR=/data/inbox
inotifywait -m -e close_write --format '%f' "$DIR" | while read file
do
case "$file" in
*.tar.gz|*.tgz) tar -xzf "$DIR/$file" -C "$DIR" ;;
*.zip) unzip "$DIR/$file" -d "$DIR" ;;
esac
done
CentOS 也可安装:
yum install p7zip unrar -y
unrar 在默认源里可能没有,可用 EPELyum install epel-release -y
export LANG=zh_CN.UTF-8
如果你能说明:
我可以帮你写一个完全贴合你场景的自动化脚本。