#unix #solaris #mv
#unix #solaris #mv
Вопрос:
for f in `find /app/rohith/* -type f -o -prune -name "*.*"` ; mv $f /app/arch/; done
ОШИБКА:
ksh: /usr/bin/find: список аргументов слишком длинный
Примечание: -> ОС — это Solaris -> Итак, я использую prune здесь, он похож на maxdepth
Мой запрос: как переместить только файлы (не подкаталоги) из / app/ rohith/ в / app/arch/ в SOLARIS, а также не должно давать слишком много аргументов ошибка / исключение.
Ответ №1:
Попробуйте это
find /app/rohith/* -type f -prune -name "*.*" -exec mv {} /app/arch/ ;
Я не уверен, работает ли это на solaris, но в Linux это работает
Комментарии:
1. Нет. Я перепробовал все это. Но, нееет ..! Не работает в SOLARIS.
2. Итак, каков результат этого cmd? Не могли бы вы вставить вывод?
3. Эта команда синтаксически корректна в Solaris, как и в Gnu / Linux, но проблема заключается в количестве файлов в /app/ rohith . В Linux это может также привести к сбою, если список файлов не соответствует среде.
Ответ №2:
Это должно сработать, если только у вас нет файлов с действительно странными именами:
cd /app/rohith amp;amp; ls | while read name; do [ -f "$name" ] amp;amp; mv "$name" /app/arch ; done