Как вывести список всех zip-файлов в каталоге? [дубликат]

Dist-upgrade не перезапишет ваши пользовательские данные. Вам будет хорошо. Всегда есть вероятность, что обновление ядра может что-то сломать, наиболее заметным (разочаровывающим для новых пользователей) являются графические драйверы, но даже в этом случае ваши пользовательские данные будут сохранены.

Если вы новичок в Linux, рекомендуется сделать образ вашей системы с помощью чего-то вроде Clonezilla. Таким образом, если что-то пойдет не так, вы сможете быстро восстановить предыдущее состояние.

0
09.11.2016, 15:43
2 ответа

Вы можете использовать:

find "$source" -name "*.zip"

И при необходимости направить его в xargs или использовать:

shopt -s dotglob
for file in "${source}"/*.zip
do
   if [ -f "${file}" ]; then
      printf '%s\n' "$file"
   fi
done

Для печати только файлов zip , которые являются обычными файлами или символические ссылки на обычные файлы.

4
28.01.2020, 02:16

bash

shopt -s nullglob dotglob
files=("$dir"/*.zip)
((${#files[@])) && printf '%s\n' "${files[@]}"
shopt -u nullglob dotglob # if needed

zsh

files=($dir/*.zip(ND))
(($#files)) && printf '%s\n' $files

fish

set files $dir/.*.zip $dir/*.zip
if count $files > /dev/null
  printf '%s\n' $files
end

(будьте осторожны, при этом будет пропущен файл с именем .zip (в отличие от других решений, приведенных здесь)).

ksh93

FIGNORE='@(.|..)'
files=(~(N)"$dir"/*.zip)
((${#files[@])) && printf '%s\n' "${files[@]}"
unset FIGNORE # if needed

yash

set -o dot-glob -o null-glop
files=("$dir"/*.zip)
[ "${files[#]}" -gt 0 ] && printf '%s\n' "$files"
set +o got-glob +o null-glob # if needed

POSIXly

export LC_ALL=C
set -- "$dir"/[*].zip "$dir"/*.zip
case ${1##*/}${2##*/} in
  '[*].zip*.zip') shift 2
esac
set -- "$dir"/.[*].zip "$dir"/.*.zip "$@"
case ${1##*/}${2##*/} in
  '.[*].zip.*.zip') shift 2
esac
[ "$#" -gt 0 ] && printf '%s\n' "$@"
1
28.01.2020, 02:16

Теги

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