我目前正在编写一个编写bash脚本的任务,该脚本可以将备份日志(syslog,dmesg和message)文件执行到新目录。我这样写了我的剧本:
cd /var/log
sudo cp syslog Assignment
文件"作业"在我的主目录中。当我使用" ls"在我的Assignment文件夹中的命令,我在那里找不到syslog的副本。谁能告诉我哪里出错了?提前致谢。
答案 0 :(得分:1)
我认为你的意思是Assignment文件夹,而不是Assignment文件。无论如何,如果你cd到/ var / log,那么当你在/ var / log中执行cp时,它会认为Assignment是/ var / log的本地。如果你现在在/ var / log中执行ls,你会在/ var / log中看到一个名为Assignment的syslog副本。要将syslog复制到主目录中的赋值文件夹,您需要指定绝对路径而不是相对路径。使用波浪号〜,指定主目录。所以你的脚本应该说
cd /var/log
sudo cp syslog ~/Assignment/
答案 1 :(得分:1)
你可以试试这个:
#!/bin/sh
if ! [ $1 ] ; then
echo "Usage:";
echo $0 "<directory_where_to_save_logs>";
return;
fi
if [ ! -d "$1" ]; then
echo "Creating directory $1";
mkdir $1;
fi
cp /var/log/syslog* $1
cp /var/log/dmesg* $1
由于