eliminar el directorio antiguo, crear un nuevo directorio vacío

eliminar el directorio antiguo, crear un nuevo directorio vacío

El comando single bash >| foocrea un archivo vacío foo, sin importar si anteriormente no estaba vacío, estaba vacío o faltaba. (Falla si era de solo lectura o un directorio).

¿Existe un comando único similar para crear un directorio vacío? Debería funcionar si el directorio estaba allí antes.O no, vacíoO no. Más o menos lo mismo que rm -rf fooDir; mkdir -p fooDirpero sin violar No te repitas. (Es aceptable que falle si los directorios o archivos son de solo lectura).

El contexto es un script que crea un directorio para almacenar su salida, pero borra las salidas de cualquier ejecución anterior.

Respuesta1

Creo que la respuesta es no. No existe un comando único para lo que estás pidiendo,al menossegún estos dos enlaces:

Todo lo que puedo decir es usar los dos comandos separados. Puede que sea feo e "inconveniente", pero es 99% probable que sea la única forma de hacerlo.

Respuesta2

Primero, busque un directorio vacío. No hayuniversalmanera de hacerlo, pero puedes crear uno o encontrar un candidato probable con find /var -type d -empty | xargs ls -ltd. Por ejemplo, en Ubuntu 14, /var/lib/ntpdateha estado vacío durante años. Otra apuesta segura es /etc/ppp/resolv.

Entonces el único comando es rsync -a --delete /var/lib/ntpdate/ fooDir. La barra diagonal final es importante. Desafortunadamente, sin una solución universal /dev/nullDir, es probable que esta solución desconcierte al recién llegado. Entonces, si su secuencia de comandos tiene que hacer esto muchas veces, vale la pena crearla primero /tmp/emptyDiry luego usarla con rsync.

información relacionada