Если ваш pax
поддерживает параметр -0
, с zsh
:
print -rN dir/**/*(D/e:'reply=($REPLY/*(ND^/[1,10]))':) |
pax -w0 | xz > file.tar.xz
Он включает первые 10 файлов, не относящихся к каталогам, каждого каталога в список отсортирован по имени файла. Вы можете выбрать другой порядок сортировки, добавив квалификатор glob om
(упорядочить по времени изменения, Om
, чтобы отменить порядок), oL
(упорядочить по длине) , non
(сортировать по имени, но численно) ...
Если у вас нет стандартной команды pax
или она не поддерживает -0
, но у вас есть команда GNU tar
, вы можете:
print -rN -- dir/**/*(D/e:'reply=($REPLY/*(ND^/[1,10]))':) |
tar --null -T - -cjf file.tar.xz
Если вы не можете использовать zsh
, но имеете доступ к bash
( оболочки проекта GNU), вы могли бы сделать:
find dir -type d -exec bash -O nullglob -O dotglob -c '
for dir do
set -- "$dir/*"; n=0
for file do
if [ ! -d "$file" ] || [ -L "$file" ]; then
printf "%s\0" "$file"
(( n++ < 10 )) || break
fi
done
done' bash {} + | pax -0w | xz > file.tar.xz
Это было бы значительно менее эффективно.
Desde este enlace
Red: Archive file
Red with black background: Broken link
En su caso, esos son enlaces rotos.
Es un enlace simbólico roto. Pero dado que esos FD están abiertos en objetos virtuales, es imposible resolverlos dentro del contexto del sistema de archivos independientemente.