cd /foo
cp -Rp bar subfolder
mv subfolder bar
Это позволяет избежать рекурсивного создания множества каталогов subfolder/subfolder
во всех системах Unix путем создания subfolder
вместе с bar
в /foo
. Он создает новую папку путем рекурсивного копирования bar
. Затем новый каталог перемещается в /foo/bar
.
Последовательность команд также могла быть
cd /foo
rsync -a bar/ subfolder
mv subfolder bar
Просто:
xargs -l1 <myFile myScript
-l1
указывает xargs
запускать myScript
один раз для каждой1
l
строки ввода, при этом слова этой1
l
строки передаются как отдельные аргументы.
Для xargs
слова разделяются пробелами, и вы можете использовать пробелы (даже новые строки )в словах, используя кавычки. Обратите внимание, однако, что хотя xargs
поддерживает "..."
, '...'
и \
для цитирования, как и большинство оболочек, его синтаксический анализ отличается от синтаксического анализа Bourne -, подобных оболочкам. В частности, ни в "..."
, ни в '...'
нет обработки обратной косой черты, и только \
может экранировать новую строку.
Например,myFile
может содержать:
word1.1 word1.2
"word 2.1" 'word 2.2'
"word'3.1" 'word"3.2'
'word"'"4'1" word\"4\'2
'word '\
5.1 "word "\
5.2
И
xargs -l1 <myFile printf 'First word: "%s", second word: "%s"\n'
будет производить:
First word: "word1.1", second word: "word1.2"
First word: "word 2.1", second word: "word 2.2"
First word: "word'3.1", second word: "word"3.2"
First word: "word"4'1", second word: "word"4'2"
First word: "word
5.1", second word: "word
5.2"
С реализацией GNU xargs
вы можете улучшить его до:
xargs -l1 -r -a myFile myScript
Преимущество этого заключается в том, что стандартный ввод остается в покое и не выполняется myScript
, если myFile
пуст.