简单的bash重定向上的“没有这样的文件或目录”

时间:2013-03-24 15:41:32

标签: bash io-redirection

以下是我的一些代码:

gzip -c $path > /var/www/wiki/backup/$now/$file.gz

我正在抓取$path(目录路径)的内容,然后将压缩文件发送到/var/www/wiki/backup/$now/$file.gz$now包含目录名称,$file是我要将压缩文件写入的名称。

但是,在运行程序时,我收到此错误:

backup.sh: line 20: /var/www/wiki/backup/Sunday/extensions.gz: No such file or directory
                                         ^$now    ^$file

(第20行是上面给出的行)

为什么程序会破坏?我知道Sunday/extensions.gz不存在(虽然周日确实如此),这就是我要求你写信的原因!

完整的程序代码:

#!/bin/bash

now=$(date +"%A")
mkdir -p /var/www/wiki/backups/$now

databases=(bmshared brickimedia_meta brickimedia_en brickimedia_customs)
locations=("/var/www/wiki/skins" "/var/www/wiki/images" "/var/www/wiki/")

for db in ${databases[*]}
do
#command with passwords and shoodle
:
done

for path in ${locations[*]}
do
#echo "" > var/www/wiki/backup/$now/$file.gz
file=`echo $path | cut -d/ -f5`
echo $path
gzip -c $path > /var/www/wiki/backup/$now/$file.gz
done

2 个答案:

答案 0 :(得分:4)

创建的目录是备份,gzip是备份

mkdir -p /var/www/wiki/backups/$now

gzip -c $path > /var/www/wiki/backup/$now/$file.gz

答案 1 :(得分:2)

您的某个位置是“/ var / www / wiki /”。那你有

file=`echo $path | cut -d/ -f5`
gzip -c $path > /var/www/wiki/backup/$now/$file.gz

由于$file包含空字符串,因此您尝试写入/var/www/wiki/backup/Sunday/.gz。这是一个问题,但这不是您报告的错误。

当我尝试gzip目录时,我收到此错误

$ gzip -c ./subdir/ > subdir.gz
gzip: ./subdir/ is a directory -- ignored

这是一个问题,但这不是您报告的错误。

@suspectus解决了您报告的问题。