После изменения всех прав доступа к файлам на 000, как изменить их обратно на нормальные? [duplicate]

Utilizando find, sortyxargs:

find. -maxdepth 1 -type f -name 'file_*.pdb' -print0 |
sort -zV |
xargs -0 cat >all.pdb

El comando findencuentra todos los archivos relevantes, luego imprime sus nombres de ruta en sortque hace una "clasificación de versión" para colocarlos en el orden correcto (si los números en los nombres de archivo han sido cero -lleno a un ancho fijo que no hubiéramos necesitado-V). xargstoma esta lista de nombres de ruta ordenados y ejecuta caten estos en lotes tan grandes como sea posible.

Esto debería funcionar incluso si los nombres de archivo contienen caracteres extraños, como líneas nuevas y espacios. Usamos -print0con findpara dar sortnul -nombres terminados para ordenar, y sortlos maneja usando -z. xargstambién lee nul -nombres terminados con su bandera -0.

Tenga en cuenta que estoy escribiendo el resultado en un archivo cuyo nombre no coincide con el patrón file_*.pdb.


La solución anterior utiliza algunos indicadores no estándar -para algunas utilidades. Estos son compatibles con la implementación GNU de estas utilidades y al menos con la implementación de OpenBSD y macOS.

Las banderas no estándar -utilizadas son

  • -maxdepth 1, para hacer findsolo ingrese el directorio principal -pero no los subdirectorios. POSIXly, usefind. ! -name. -prune...
  • -print0, para hacer que findgenere nul -nombres de ruta terminados (esto fue considerado por POSIX pero rechazado ). Se podría usar -exec printf '%s\0' {} +en su lugar.
  • -z,para hacer sorttomar nul -registros terminados. No hay equivalencia POSIX.
  • -V, para hacer que sortordene, p. 200después de 3. No existe una equivalencia POSIX, pero podría reemplazarse por una ordenación numérica en partes específicas del nombre de archivo si los nombres de archivo tienen un prefijo fijo.
  • -0, para hacer xargslectura nula -registros terminados. No hay equivalencia POSIX. POSIXly, uno tendría que citar los nombres de los archivos en un formato reconocido por xargs.

Si los nombres de ruta se comportan bien, y si la estructura de directorios es plana (sin subdirectorios ), entonces uno podría arreglárselas sin estas banderas, excepto -Vcon sort.

5
23.05.2017, 14:33
0 ответов

Теги

Похожие вопросы