Obiettivo: pulizia
Tronca selettivamente i nomi di file nella mia cartella delle note di nvALT. Ho provato a utilizzare il suggerimento di un blogger di produttività (che mi sfugge dopo una ricerca approfondita) per anteporre ^ > - +
a nomi di file, ma non funziona per me. È ora di pulire casa! Tuttavia, ho bisogno di assicurarmi di non perdere i caratteri alfa sui nomi di file che non usano quei prefissi. Inoltre sto imparando lo scripting e penso sia divertente!
Script di shell
Ecco cosa ho:
#!/bin/bash
cd ~/dropbox/notes_test
for f in *; do
FILENAME=$(basename "$f")
DIRNAME=$(dirname "$f")
if [[ "$f" == \^\ * ]]; then
mv "$f" "${DIRNAME}/${FILENAME:2}"
fi
if [[ "$f" == \+\ * ]]; then
mv "$f" "${DIRNAME}/${FILENAME:2}"
fi
if [[ "$f" == \>\ * ]]; then
mv "$f" "${DIRNAME}/${FILENAME:2}"
fi
if [[ "$f" == \-\ * ]]; then
mv "$f" "${DIRNAME}/${FILENAME:2}"
fi
done
Problema: il trattino
Ecco l'input da riga di comando e il messaggio di errore. Ne ricevo uno per ciascun nome di file che inizia con "-".
DEV0041:scripts n$ ./truncate.sh
basename: illegal option --
usage: basename string [suffix]
basename [-a] [-s suffix] string [...]
dirname: illegal option --
usage: dirname path
mv: illegal option --
usage: mv [-f | -i | -n] [-v] source target
mv [-f | -i | -n] [-v] source ... directory
Domanda: Perché il trattino-e solo il trattino-genera un errore?
E come risolvere questo problema?