Я думаю, что утверждение «Windows - это не бедный человек Linux» - это преднамеренный подход к большинству мышления людей, которые думают, что Linux - это бедный человек Windows (потому что он ничего не стоит). Я согласен с комментариями Элиа Кагана в этой теме. Отмена ролей в заявлении заставляет людей немного подумать о том, что понимается под «бедными», и это явно не означает деньги.
Эта команда копирует файлы по одному и будет работать, даже если их слишком много для *, чтобы развернуть одну команду cp:
for i in *; do cp "$i" ../prjshp/; done
IMHO, оптимальными инструментами для работы с ордами файлов являются find и xargs. См. [F4]. См. [F5]. find с его переключателем -print0 создает NUL -сепаратированный список имен файлов (имена файлов могут содержать любой символ execpt NUL или /), который xargs понимает, используя переключатель -0. xargs затем строит самую длинную команду, разрешенную (большинство имен файлов, без полуфинала в конце) и выполняет ее. xargs повторяет это, пока find не добавит больше имен файлов. Запустите xargs --show-limits </dev/null, чтобы увидеть пределы.
Чтобы решить вашу проблему, (и после проверки man cp найти --target-directory=):
find . -maxdepth 1 -type f -name '*.prj' -print0 | xargs -0 cp --target-directory=../prjshp/