#command-line
#командная строка
Вопрос:
В настоящее время у меня есть пример кода, который выглядит так
git clone repo/ ./tmp
mv ./tmp/* .
При использовании *
он не включает точечные файлы
Как я могу включить точечные файлы, используя *
Ответ №1:
Короткая версия заключается в том, что вы не можете. Масштабирование файлов ( *
) не включает dot-файлы, поэтому вам нужно будет изменить код вашей оболочки, чтобы поддерживать это поведение (или, что более вероятно, отказаться от поддержки существующего поведения), чего вы, вероятно, не собираетесь делать, и вы определенно не хотите делать, из-за двух точечных файлов.-файлы в каждом каталоге, .
и ..
это доставит вам неприятности.
Вместо этого вы захотите переместить файлы отдельно, что-то вроде:
mv ./tmp/* .
mv ./tmp/.??* .
Во второй строке отображаются точечные файлы, которые не являются только текущим или родительским каталогом.
Если вам (по какой-либо причине) нужно, чтобы это произошло в одной команде или у вас есть более сложные критерии для работы, вы можете захотеть исследовать find
-exec
аргумент ‘s, который позволяет запускать команду практически для любого списка файлов, сгенерированного по времени, содержимому, имени или множеству других характеристик.