Разархивируйте исходные аргументы

Различные 2 только найдут два пробелов. Если Вы используете '\s' вместо этого, будут работать оба варианта.

Вы могли легко протестировать это сами, поэтому каков Ваш фактический вопрос?

5
13.12.2014, 23:50
2 ответа

Наоборот, расстегнут слишком много. CP не нужно разбирать имена файлов, все, что ему нужно сделать, это цикл над ними.

Раскраска, с другой стороны, необходимо увидеть, является ли аргумент подстановочный знак, проверьте список каталогов, чтобы увидеть, что соответствует подстановочным знаком, а затем цикл. И обратите внимание, что оболочка уже способна соответствовать и расширять подстановочные знаки, поэтому распаковка является дублированием функциональности.

-121--70751-

Если у вас есть два zip-файлов A.ZIP и в вашем текущем каталоге в вашем текущем каталоге, то

$ cp *.zip destination/

расширяется до

$ cp a.zip b.zip destination/

семантика для CP - скопировать как a.zip и b.zip до назначения.

Если вы напечатаете

$ cp \*.zip destination/

это просто «расширяется» на

$ cp '*.zip' destination/

I.E. Он попытается скопировать один файл с именем «* .zip» в пункт назначения, что не то, что вы хотите.

С другой стороны, если вы напечатаете

$ unzip *.zip -d destination/

, он снова будет расширен до

$ unzip a.zip b.zip -d destination/

семантики для Unzip - найти файл с именем «B.ZIP» в архиве «A.ZIP» , что опять не то, что вы хотите.

Если вы напечатаете

$ unzip \*.zip -d destination/

Команда unzip не просто пытается расстегнуть файл под названием *. ZIP Но он будет расстегнут все файлы, заканчивающиеся .zip .

Разница в том, что обе команды интерпретируют свои аргументы по-разному.

5
27.01.2020, 20:36

Наоборот, расстегнут слишком много. CP не нужно разбирать имена файлов, все, что ему нужно сделать, это цикл над ними.

Расстеренение, с другой стороны, необходимо увидеть, является ли аргумент подстановочный знак, проверьте список каталогов, чтобы увидеть, что соответствует подстановочным знаком, а затем цикл. И обратите внимание, что оболочка уже способна соответствовать и расширять подстановочные знаки, поэтому распаковка является дублированием функциональности.

3
27.01.2020, 20:36

Теги

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