从变量中删除斜杠
delete slash from variable
在帮助下,我有了这个脚本,但我不确定如何从变量中删除“./”以便我可以压缩文件夹。请你告诉我。
谢谢
尼克
#/bin/sh
BASEDIR=/tmp/
cd $BASEDIR
find . -type d | sort > newfiles.txt
DIFF=$(comm -13 oldfiles.txt newfiles.txt)
echo $DIFF
if [ "$DIFF" != "" ]
then
#echo "A new dir is found"
tar -czvf "$DIFF".tar.gz --verbose
fi
mv newfiles.txt oldfiles.txt
输出失败:
+ tar -czvf ./file2.tar.gz --verbose
tar: Cowardly refusing to create an empty archive
Try `tar --help' or `tar --usage' for more information.
错误源于此命令:
tar -czvf "$DIFF".tar.gz --verbose
您指定了存档名称,但未指定 files/folders 要添加到所述存档中的名称。
您需要将其更改为:
tar -czvf "$DIFF".tar.gz "$DIFF"
请注意,您不需要 --verbose
,因为您已经用 -czvf
指定了 -v
。
但是,如果 DIFF
包含多个项目(即行),您的代码将无法按预期工作。你可能想要这样的东西:
#/bin/sh
BASEDIR="/tmp/"
cd "$BASEDIR"
find . -type d | sort > newfiles.txt
DIFF=$(comm -13 oldfiles.txt newfiles.txt)
echo "$DIFF"
IFS=$'\n'
for item in $DIFF
do
#echo "A new dir is found"
tar -czvf "$item.tar.gz" "$item"
done
mv newfiles.txt oldfiles.txt
也就是说,如果你想从 find
输出中删除 ./
,你可以使用:
find . -type d -printf "%P\n" | sort > newfiles.txt
但您实际上不必为脚本工作而执行此操作。
在帮助下,我有了这个脚本,但我不确定如何从变量中删除“./”以便我可以压缩文件夹。请你告诉我。
谢谢 尼克
#/bin/sh
BASEDIR=/tmp/
cd $BASEDIR
find . -type d | sort > newfiles.txt
DIFF=$(comm -13 oldfiles.txt newfiles.txt)
echo $DIFF
if [ "$DIFF" != "" ]
then
#echo "A new dir is found"
tar -czvf "$DIFF".tar.gz --verbose
fi
mv newfiles.txt oldfiles.txt
输出失败:
+ tar -czvf ./file2.tar.gz --verbose
tar: Cowardly refusing to create an empty archive
Try `tar --help' or `tar --usage' for more information.
错误源于此命令:
tar -czvf "$DIFF".tar.gz --verbose
您指定了存档名称,但未指定 files/folders 要添加到所述存档中的名称。
您需要将其更改为:
tar -czvf "$DIFF".tar.gz "$DIFF"
请注意,您不需要 --verbose
,因为您已经用 -czvf
指定了 -v
。
但是,如果 DIFF
包含多个项目(即行),您的代码将无法按预期工作。你可能想要这样的东西:
#/bin/sh
BASEDIR="/tmp/"
cd "$BASEDIR"
find . -type d | sort > newfiles.txt
DIFF=$(comm -13 oldfiles.txt newfiles.txt)
echo "$DIFF"
IFS=$'\n'
for item in $DIFF
do
#echo "A new dir is found"
tar -czvf "$item.tar.gz" "$item"
done
mv newfiles.txt oldfiles.txt
也就是说,如果你想从 find
输出中删除 ./
,你可以使用:
find . -type d -printf "%P\n" | sort > newfiles.txt
但您实际上不必为脚本工作而执行此操作。