
Aquí está mi ls
comando, que muestra la lista de archivos en mi directorio actual:
rper: ls -l
$commandoutput[0]
file.txt
Intenté eliminar $commandoutput[0]
la línea usando rm -rf $commandoutput[0]
, pero muestra el siguiente error. ¿Como puedo quitarlo?
rper: rm -rd $commandoutput[0]
commandoutput: Undefined variable.
Respuesta1
Como alternativa a la respuesta de @RomanPerekhrest, esto también funcionará:
rm '$commandoutput[0]'
ya que las comillas simples evitarán la expansión variable.
Otra forma es empezar a escribir rm $
y luego presionar Tab; el shell completará automáticamente el nombre del archivo y aplicará caracteres de escape según sea necesario.
Respuesta2
Escape $
(y preferiblemente [
, ]
) inicie sesión en su nombre de archivo con barra invertida \
:
rm -rf \$commandoutput\[0\]
Respuesta3
Si bien otros han respondido esta pregunta, otra forma de hacerlo sería buscando el inodo del archivo y usando buscar y eliminar ejecutando para eliminar el archivo.
ls -il
Salida de muestra:
781956 drwx------ 3 viv viv 4096 2017-07-7 15:05 $commandoutput[0]
La primera columna debe ser el inodo; en el ejemplo anterior, ejecute:
find . -inum 781956 -exec rm -i {} \;
Respuesta4
Otra forma sencilla es utilizar un comodín y rm -i:
rm -i *command*
Esto, para todos los nombres de archivos que contengan la palabra "comando", le preguntará si desea eliminar el archivo. Luego podrá comprobarlo antes de eliminarlo.