
Sé que me lo han preguntado un millón de veces, pero no encuentro la respuesta a lo que intento hacer específicamente.
Aquí está la estructura del directorio:
Main Folder1
|
|-Subfolder 1
|-Subfolder 2 HasAReallyLongName
|---files
|-Subfolder 3-1000
Main Folder2
|
|-Subfolder 2 HasAReallyLongName
|---files
- Quiero intentar mover la Subcarpeta2 con sus archivos a un directorio diferente.
- No quiero copiar y luego eliminar nada porque no tengo suficiente espacio.
- No quiero
mv /Main/Sub2/* /Main2/
porque eso pone todo en la/Main2
carpeta y no en un subdirectorio. - No quiero
mkdir /Main2/...
porque es un nombre muy largo (principalmente marcas de tiempo) y no quiero escribirlo manualmente (y probablemente estropearlo) - Hasta donde yo sé,
rsync
también copia los archivos, así que no estoy seguro de que funcione.
¡Cualquier sugerencia u otra herramienta será muy apreciada!
Respuesta1
Esto es completamente sencillo.
mv /Main1/Sub2 /Main2
Esto crea el directorio /Main2/Sub2
con todo el contenido del original y elimina el directorio /Main1/Sub2
. Si no desea escribir el nombre completo, puede utilizar un globo; simplemente deje de escribir el nombre y finalice con *
cuando haya ingresado suficientes caracteres para distinguir el nombre del directorio de todo lo demás en el directorio (¡tenga cuidado!):
mv /Main/Sub* /Main2
Posibles problemas que podrían estar provocando que esto no funcione como se esperaba:
Ya hay un directorio dentro
/Main2
con el mismo nombre que/Main1/Sub2
. Esto provoca el errordirectory not empty
, al igualmv
que negarse a sobrescribir el directorio existente. Si este es el caso, cambie el nombre (o elimine) el directorio existente/Main2
primero:mv /Main2/Sub2 /Main2/SomethingElse
Usando una ruta incorrecta. Recuerde que todo distingue entre mayúsculas y minúsculas y tenga en cuenta las rutas relativas y
~
la expansión. Todos estos son diferentes según el directorio de trabajo actual./Main1/Sub2 Main1/Sub2 ~/Main1/Sub2
No tiene permiso para escribir en el directorio de origen y/o destino. Esto será muy obvio por el mensaje de error:
mv: cannot move 'thing' to '/place': Permission denied
. En cuyo caso puedes ejecutar mi comando favorito para solucionar el problema.sudo !!
Respuesta2
Entendido: el uso sudo mv /Main1/Sub2 /Main2
lo hizo por mí. Supongo que la principal diferencia es ser root.