Объединение файлов из самых последних

Я только что удалил папку certs, а redbird создал новую папку certsс действующими сертификатами.

1
07.10.2021, 11:17
2 ответа

Вы можете просто сделать это, допустим, у нас есть эти файлы:

$ cat a.txt 
a
$ cat b.txt 
b
$ cat c.txt 
c
$ ls -lt *.txt
-rw-rw-r-- 1 user user 2 oct  7 09:21 a.txt
-rw-rw-r-- 1 user user 2 oct  7 09:21 b.txt
-rw-rw-r-- 1 user user 2 oct  7 09:21 c.txt

Затем мы запускаем эту команду:

$ ls -1t *.txt | xargs -I {} cat "{}" > Save.txt
$ cat Save.txt 
a
b
c
  • ls -1tперечислены только имена файлов.
  • xargs -I {} cat "{}"выполняет catдля каждого файла, переданного в качестве аргумента.

И важное замечание:Почему не parsels(и что делать вместо )? .

0
07.10.2021, 12:23

В оболочке zshшаблон подстановки и квалификатор подстановки *(.om)будут расширяться до всех имен обычных файлов в текущем каталоге, упорядоченных по отметке времени их модификации. Последний измененный файл находится первым в результирующем списке. Если в каталоге нет обычных файлов, шаблон выдает ошибку в оболочке.

Следовательно, в оболочке zsh

cat./*(.om) >Save.txt

или, для многих тысяч файлов, с циклом

for name (./*(.om) ) cat $name >Save.txt

Вызов изbash:

zsh -c 'for name (./*(.om) ) cat $name >Save.txt'

Вы также можете использовать zargsв zsh, который является своего рода встроенным -в варианте xargs:

.
autoload -U zargs
zargs --./*(.om) -- cat -- >Save.txt

Из bash,

zsh -c 'autoload -U zargs; zargs --./*(.om) -- cat -- >Save.txt'
2
07.10.2021, 12:41

Теги

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