Резервное копирование каталога программирования

У меня есть каталог со многими скомпилированными программами на C, которые я бы хотел создать. Сейчас они называются program.out но я хотел бы изменить это на просто program .

Можно ли это исключить? Кроме того, какое регулярное выражение я использовал бы, чтобы быстро переименовать их всех?

Для резервного копирования кода используйте git или другое программное обеспечение для управления версиями. В Интернете у вас много вариантов, чтобы назвать некоторые: github, bitbucket.

В git вы получили файл .gitignore, если вы добавили туда * .out, тогда он не будет передан в репозиторий

Я не слишком четко понимаю ваш первый вопрос. Если вы хотите переименовать program.out в program тогда просто запустите:

 mv program{.out,} 

Во втором вопросе, предполагая, что я хочу получить список файлов в /etc с суффиксом:

 #!/bin/bash ls /etc > /tmp/etcfiles while read line do if [[ $line =~ \..+ ]]; then echo $line fi done < /tmp/etcfiles 

Вы можете отрегулировать вышеуказанное, как требуется.

  • \. Соответствует буквальному периоду.
  • . Соответствует любому символу после периода.
  • + Говорит, что по крайней мере один символ должен следовать начальному периоду. Так что это будет соответствовать test.c , но не test. Если вы хотите совместить test. А затем измените + на a * .

Если вы используете bash в качестве оболочки, это простая задача для конвейера оболочки.

 ls | grep '\.out$' | while read file; do echo mv "$file" "${file%.*}"; done 

ls создает список файлов в каталоге.

grep '\.out$' извлекает имена файлов, которые заканчиваются на .out, и отбрасывает остальное.

while read file считывает имена файлов по одному.

echo mv "$file" "${file%.*}" Отображает, но не запускает команду mv, которая переименовывает каждый файл в версию без расширения. Бизнес ${file%.*} – это синтаксис bash для снятия расширения файла. Когда вы будете удовлетворены тем, что конвейер будет делать то, что вам нужно, если он будет запущен по-настоящему, удалите часть echo и дайте ему работать в реальном режиме.

 ls | grep '\.out$' | while read file; do mv "$file" "${file%.*}"; done 
  • Как я могу отображать использование памяти для каждого процесса, если я делаю «ps -ef»?
  • Как я могу проверить, что занимает дисковое пространство в / tmp?
  • Удаленно сделайте звуковой сигнал компьютера на встроенном динамике
  • Исправить окна 8 efi MBR - нет успеха
  • Linux найти команду для перемещения файлов
  • Какая версия моей дебианской системы?
  • Ls с каталогом путь показывает файлы, но ls с шаблоном файла нет?
  • Автоматически отвечать «Да» при использовании apt-get install
  • Как я могу использовать nohup, если сценарий оболочки занимает больше времени для запуска?
  • Как объединить несколько файлов в один?
  • Удаляя все: # rm -rf /
  • Interesting Posts

    Как определить максимальное использование стека во встроенной системе с помощью gcc?

    Ограничить загрузку-datepicker только в рабочие дни?

    Структура каталогов Java JTree из путей к файлам

    Удаление столбцов из фрейма данных, где ВСЕ значения NA

    Dell xps laptop windows 8 может прекрасно подключаться к беспроводной сети, за исключением одной сети, которую все остальные могут подключить к

    Как разбить строку на подстроки заданной длины?

    Android – SharedPreferences с сериализуемым объектом

    ORA-12505, TNS: слушатель в настоящее время не знает о SID, заданном в дескрипторе соединения

    Сумма во вложенном документе MongoDB

    Определение, является ли число простым

    Столбец Access Array в Spark

    Как удалить столбцы по имени в кадре данных

    Получение ‘java.lang.UnsatisfiedLinkError’: no ​​lwjgl в java.library.path

    Почему мое приложение не появляется на планшетах в Google Play?

    Как добавить кнопку на экран предпочтений

    Давайте будем гением компьютера.