Я хочу использовать имя файла, которое в настоящее время используется *. Как получить имя файла?
Если Вы хотите использовать звездообразный символ *
обычно используемый в качестве подстановочного знака в ударе для выбора нескольких файлов необходимо заключить имя файла в кавычки или выйти *
с обратной косой чертой \
. Пример:
$ touch '*.jpg'
$ touch 'mypicture.jpg'
$ ls
'*.jpg' mypicture.jpg
$ rm '*.jpg'
$ ls
mypicture.jpg
Можно также использовать тот же сценарий с \*.jpg
вместо '*.jpg'
.
*.jpg
расширится до каждого .jpg файла в текущем каталоге. Если Вы выполняетесь rm *.jpg
, все те файлы будут удалены. Расширение оболочки подстановочного знака *
не хранит результаты как отдельные переменные или дает Вам способ сослаться на отдельные результаты в наборе расширения.
Если Вы хотите воздействовать на каждый файл, подобранный выражением с подстановочными знаками, можно хотеть использовать для цикла. Используя цикл может присвоить имя файла переменной, которую Вы выбираете на каждом выполнении цикла. Например:
for file in *.jpg; do
echo "$file"
done
Будет echo
каждый из файлов, подобранных *.jpg
. Можно, конечно, использовать намного более сложные команды в цикле, включая другие условные операторы такой как if
операторы.
Показать все файлы, обозначенные *.jpg
тип:
ls *.jpg
Команда rm *.jpg
удалит все эти файлы.