Objetivo: limpiar
Truncar selectivamente los nombres de archivo en mi carpeta de notas nvALT. Intenté usar la sugerencia de un blogger de productividad (que se me escapa después de una búsqueda exhaustiva) para agregar ^ > - +
a los nombres de archivo, pero no me funciona. ¡Es hora de limpiar la casa! Sin embargo, debo asegurarme de no cortar ningún carácter alfa en los nombres de archivo que no usen esos prefijos. Además, estoy aprendiendo scripting y creo que es divertido!
Shell script
Esto es lo que tengo:
#!/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: el guión
Aquí está la entrada de línea de comando y el mensaje de error. Obtengo uno de estos para cada nombre de archivo que comienza 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
Pregunta: ¿Por qué el guión —y solo el guión— produce un error?
¿Y cómo solucionar este problema?