GNU/Linux >> Tutoriales Linux >  >> Linux

¿MV sobrescribe el archivo de solo lectura sin preguntar?

El manual de GNU Coreutils para mv dice:

Si existe un archivo de destino pero normalmente no se puede escribir, la entrada estándar
es un terminal, y no se proporciona la opción -f o –force, mv
pregunta al usuario si debe reemplazar el archivo. (Es posible que sea el propietario del archivo
o que tenga permiso de escritura en su directorio). Si la respuesta
no es afirmativa, el archivo se omite.

Sin embargo, la versión de mv Estoy usando (GNU coreutils 8.21 en Ubuntu 14.04.3 LTS) presenta un comportamiento inesperado:

$ which mv
/bin/mv
$ ls -l
total 0
$ echo foo > 1; chmod -w 1; cp 1 2; ls -l | cut -d' ' -f 1-5,9
-r-x------ 1 me me 4 1
-r-x------ 1 me me 4 2
$ echo bar > 2
-bash: 2: Permission denied
$ mv 1 2
$ ls -l | cut -d' ' -f 1-5,9
-r-x------ 1 me me 4 2

Según el extracto del manual citado anteriormente, habría esperado el mv 1 2 Comando para haber avisado al usuario antes de sobrescribir el archivo 2 .

¿Hay algún error en mi versión de mv? , o un error en mi comprensión? Si es lo último, entonces qué hace el manual significa?

Respuesta aceptada:

Resulta que el servidor estaba usando un sistema de archivos de tipo "cifs" (presumiblemente el Sistema de archivos de Internet común, también conocido como CIFS). Esto se descubrió ejecutando el comando df -T .

Aparentemente, CIFS exhibe un comportamiento poco convencional con respecto a los permisos.

Ejecutar los mismos comandos en una máquina con un sistema de archivos ext4 y una versión reciente de Coreutils produjo:

$ mv 1 2
mv: replace ‘2’, overriding mode 0444 (r--r--r--)?

como se esperaba.


Linux
  1. ¿Por qué Rm puede eliminar archivos de solo lectura?

  2. Echo To File Descriptor sobrescribe el archivo?

  3. ¿Es seguro renombrar() sin fsync()?

  4. grep sin mostrar ruta/archivo:línea

  5. Descomprimir todos los archivos en el directorio sin preguntar

Cómo ejecutar el comando Sudo sin contraseña

Cómo editar un archivo sin cambiar sus marcas de tiempo en Linux

Copie el contenido del archivo en el portapapeles sin mostrarlo

¿Por qué mi sistema de archivos está montado como de solo lectura?

cp -L frente a cp -H

Monte el archivo zip como un sistema de archivos de solo lectura