Копировать файлы с определенным заголовком

Вам нужно внести некоторые изменения во второй скрипт. Вставьте отсутствующий -name, удалите одинарные кавычки и используйте установите -f , чтобы избежать расширения звездочки. Либо в начале скрипта, либо (, как показано )в подоболочке :

.
<(set -f; find $find_args)

измените эхо на printf и сделайте присваивание как files+=("$file"), чтобы фактически иметь массив значений. То, что у вас есть, только строит строку.

#!/bin/bash
find_args="-type f -name *.c -print0"
while IFS= read -r -d '' file; do
    files+=("$file")
done < <(set -f; find $find_args)
printf '<%s> ' "${files[@]}"; echo
0
20.10.2019, 05:31
1 ответ

Чтобы скопировать обычные файлы (, исключая файлы со скрытыми точками ), в ваш текущий каталог, начиная с UnityFS5, вы можете использовать:

for file in *; do
  if [ -f "$file" ] && [ "$(head -c 8 "$file")" = "UnityFS5" ]; then
    cp "$file" /path/to/destination/
  fi
done
3
28.01.2020, 02:22

Теги

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