ペンドライブのさまざまなファイルをPC上の適切なフォルダに移動しようとしています。つまり、音楽ファイルは音楽フォルダに移動し、テキストファイルは文書に移動する式です。これに対してスクリプトを作成しました。 。対応するフォルダ)、エコーはtestlog.txtファイルに保存されます。したがって、スクリプトは実行中ですが、ファイルは移動されません。なぜですか?スクリプトはルートが所有します。
私のUdevルールはACTION=="add"、RUN+="/lib/udev/cpphone.sh"です。
私のスクリプトは
#!/bin/bash
echo Hello > /home/ArunReddy/testlog.txt
exec 1>/dev/null 2>&1
DIR=$(date +%d-%m-%y)
if [ ! -d /home/ArunReddy/Pictures/"$DIR" ];
then
cd /home/ArunReddy/Pictures/
mkdir $DIR
fi
if [ ! -d /home/ArunReddy/Pictures/"$DIR" ];
then
cd /home/ArunReddy/Documents/
mkdir $DIR
fi
if [ ! -d /home/ArunReddy/Videos/"$DIR" ];
then
cd /home/ArunReddy/Videos/
mkdir $DIR
fi
if [ ! -d /home/ArunReddy/Music/"$DIR" ];
then
cd /home/ArunReddy/Music/
mkdir $DIR
fi
cd /run/media/ArunReddy/121C-E137
mv *.png /home/ArunReddy/Pictures/$DIR/
echo pngfilecmd executed>/home/ArunReddy/testlog.txt
mv *.jpg /home/ArunReddy/Pictures/$DIR/
mv *.bmp /home/ArunReddy/Pictures/$DIR/
mv *.txt /home/ArunReddy/Documents/$DIR/
mv *.odt /home/ArunReddy/Documents/$DIR/
mv *.doc /home/ArunReddy/Documents/$DIR/
mv *.pptx /home/ArunReddy/Documents/$DIR/
mv *.pdf /home/ArunReddy/Documents/$DIR/
mv *.ppt /home/ArunReddy/Documents/$DIR/
mv *.docx /home/ArunReddy/Documents/$DIR/
mv *.avi /home/ArunReddy/Videos/$DIR/
mv *.flv /home/ArunReddy/Videos/$DIR/
mv *.MP4 /home/ArunReddy/Videos/$DIR/
mv *.mpeg /home/ArunReddy/Videos/$DIR/
mv *.MP3 /home/ArunReddy/Music/$DIR/
exit
答え1
おそらく、これらのスクリプトが実行されるudev環境にPATHが定義されていない可能性があります。などのコマンドのcd
フルパスmkdir
を試してくださいcp
。which cd
シェルでコマンドを使用してパスを検索できます。