для задачи цикла, обнаруживать файл с размером и копией независимо от имени

Ситуация:
Я хочу скопировать все odt файлы размером более 0 из одной папки в другую. Имена файлов будут содержать следующие символы: +% & [(и пробелы.

Вот моя попытка:

#!/bin/bash mvfunc () { if [ -s "$1" ]; then cp -n "$1" /home/telas/zztmp/currentfiles/ /usr/bin/truncate -s 0 "$1" return 0 fi } fileslist=$(ls --quoting-style=shell-always /home/telas/zzz/workingfiles/*.odt) for filename in "$fileslist" ; do mvfunc "$filename" done 

Вся помощь очень ценится !!

One Solution collect form web for “для задачи цикла, обнаруживать файл с размером и копией независимо от имени”

Вам лучше использовать расширение пути ( globbing ) в Bash, чем полагаться на внешние команды, такие как ls .

Если цикл for содержит подстановочные знаки, то Bash по умолчанию использует globbing, поэтому специальные символы не будут испорчены, как если бы они интерпретировали параметры, заданные в виде текстовой строки в результате замены команд.

И код будет более чистым и более портативным, потому что опция --quoting-style= специфична для GNU ls:

 #!/bin/bash mvfunc () { if [ -s "$1" ]; then cp -n "$1" currentfiles /usr/bin/truncate -s 0 "$1" return 0 fi } for filename in /home/telas/zzz/workingfiles/*.odt; do mvfunc "$filename" done 
  • Найти файл с расширением .csv в каталоге, соответствующем шаблону
  • touch: не может касаться `foo ': нет такого файла или каталога
  • Существуют ли соглашения об именах для переменных в сценариях оболочки?
  • Скрипт должен читать эхо-строку
  • Как отображать «доступные для человека» размеры файлов в результатах поиска?
  • find (1): как применяется групповой символ звезды для отказа от некоторых имен файлов?
  • "Проверка подключения к Интернету с одним слоем"
  • Почему мой сценарий оболочки задыхается от пробелов или других специальных символов?
  • Как распечатать только первый матч с помощью grep
  • Возможно ли, чтобы переменные bash сохранялись между прогонами
  • Получить определенную строку из вывода команды в awk
  • Interesting Posts

    Безопасное использование док-станции для жесткого диска

    Существуют ли awk-версии, которые обеспечивают синтаксис для вычисления агрегатов?

    Команда для отслеживания rsh-сервера для проверки поведения конкретного системного вызова

    хром-браузерные процессы cmdline недоступны в полной форме

    Как использовать туннель SSH в качестве альтернативы переадресации портов?

    IFS null – это не то же самое, что unset IFS?

    Создание временной шкалы с помощью guvcview

    Идентичный MAC-адрес на двух разных виртуальных машинах, но у меня есть подключение к Интернету

    Первое письмо отскакивает; вторая и последующие электронные письма проходят через

    Заменить между шаблонами, которые начинаются и заканчиваются в разных строках

    Как создать сиротский процесс без прерывания родительской оболочки?

    Как последний «Bash Bug» или эксплоит затрагивают системы, требующие аутентификации?

    Нечитаемые символы пастилки в tty1

    Как связать с привилегированным портом из процесса без полномочий root, на NAS Synology

    Как создать список установленных пакетов для простой / автоматической переустановки после форматирования диска

    Linux и Unix - лучшая ОС в мире.