Один из способов сделать это —GNU find
:
td=$(mktemp -d);printf '\n\n' > "$td/2"
find. -maxdepth 1 -type f -exec cat {} "$td/2" \; | head -n -2 > "$td/log"
find
получает обычные файлы в текущем каталоге и передает их в cat
, который также объединяет файл с пустыми строками. Наконец, вывод передается в head
, который удаляет конечные пустые строки и затем сохраняется в файле журнала.
perl -lpe '$\ = eof && !eof() ? "\n\n" : $/' *.files
Похоже, вы столкнулись с проявлением этого . Подводя итог, конечный диск монтируется как root, поэтому у вас нет там разрешений. Решение, описанное там, состоит в том, чтобы простоsudo mount -t drvfs X: /mnt/s -o uid=1000,gid=1000
(заменить 1000 на ваш uid/gid, если они разные ).
Пробуя самостоятельно без опций монтирования, я смог воспроизвести вашу проблему. Когда я добавил параметры монтирования на целевой диск, у меня все заработало правильно.