Estoy jugando con FTP a través de la línea de comando y tengo dos problemas. No puedo cambiar el nombre ni ingresar a carpetas como:
dir /home/folder1/Human (2012)
Lo intenté:
cd ~/folder1/Human\ (2012)
Aquí recibo un mensaje que the folder does not exist
.
mv ~/folder1/Human\ (2012)
En este caso recibo un mensaje que dice:
syntaxfailure at (
¿Como puedó resolver esté problema?
Respuesta1
Podrías citar dos veces tu ruta:
cd ~/"folder1/Human (2012)"
o debe proporcionar una secuencia de escape para (
y )
( espacio) (ya que son caracteres especiales):
cd ~/folder1/Human\ \(2012\)
y
mv ~/"folder1/Human (2012)"
Con secuencia de escape:
mv ~/folder1/Human\ \(2012\)
Respuesta2
Tienes la idea correcta con el \
antes del espacio. Esto se aplica a todos los caracteres especiales, incluidos los paréntesis. Coloque una barra invertida antes del par abierto y otra barra invertida antes del par cerrado y funcionará.
La función de tabulación es útil en estos casos... si comienza a escribir el nombre del archivo y luego presiona Tab, se completará automáticamente el resto del nombre del archivo, insertando barras invertidas cuando sea necesario. (Si no ha escrito suficiente nombre de archivo para que no quede ambiguo a qué archivo se refiere, bash seguirá autocompletando la mayor cantidad posible del nombre de archivo. Al presionar tab dos veces se mostrará una lista de posibles finalizaciones del nombre de archivo).
Respuesta3
Estoy de acuerdo con snoop en que la forma de hacer esto es usar "
marcas cuando especificas un archivo o directorio.
Sin embargo, si hay un montón de directorios a los que es necesario cambiarles el nombre, puede utilizar rename
para cambiarles el nombre por nombres más amigables. Cambiar nombre funciona de manera similar, sed
excepto que rename
cambia el nombre de archivos y directorios, mientras que sed
generalmente se usa para editar el contenido de los archivos. Aquí hay un ejemplo:
rename 's/ //g;s/\(//g;s/\)//g' ~/folder1/*
Entonces, si tuviera los siguientes directorios ubicados en ~/folder1
:
Human (2012)
Human (2011)
Human (2010)
En su lugar, se les cambiará el nombre a este:
Human2012
Human2011
Human2010
Ejecute el siguiente comando para obtener más información:
man rename