Jestem nowy w systemie Linux i napisałem skrypt, aby przenieść pliki do określonego folderu (fałszywe usunięcie).
Będzie to jednak tylko mv
plik w tym samym folderze co mój skrypt. Czy istnieje sposób, aby ten plik wykonywalny mógł usunąć dowolny plik bez względu na lokalizację?
To znaczy:
DELETE test .. (test znajduje się w folderze ~ / my-dokumenty) (usuń skrypt w folderze ~ / my-applications / bin)
Skrypt znajduje się poniżej.
echo do you want to delete this? (yes/no) \n
read ans \n
case "$ans" in
Y¦y¦yes ) echo "$readlink -f "$1")" >>"$HOME/DustbinLog" && mv "$1" "$HOME/my-applications/bin/dustbin";;
N¦n¦no echo "File not moved!";;
esac
command-line
bash
scripts
Yunus1979
źródło
źródło
DELETE ~/my-documents/test
.or
operator powinien być (|
nie¦
), druga opcja odcase
brakuje)
. Użyłbym również domyślnego przypadku w odpowiedzi „nie” (*)
). W ten sposób, jeśli użytkownik wpisze coś innego niż Y / y / tak, plik nie zostanie przeniesiony, a komunikat zostanie wyświetlony.Odpowiedzi:
Po prostu musiałem być w pwd, aby polecenie DELETE działało lub podać dokładną nazwę ścieżki .. dzięki ..
źródło