Как я могу сделать состояние мерзавца - коротким быть значением по умолчанию

Существует набор инструментов копирования файла, которые позволяют создавать целевое имя каталога с достаточно гибкими правилами (zcp, rsync, pax, …). К сожалению, немногие из них позволяют оба перемещения (в противоположность копированию) и создание целевых каталогов по требованию. Таким образом, я покажу, что некоторые пути делают это в двух передачах: сначала создайте все потенциально необходимые целевые каталоги, затем выполните перемещение.

Perl переименовывает

Perl rename программа, поставленная Debian и Ubuntu, может создать целевой каталог при необходимости, если Вы пишете необходимый бит Perl.

shopt -s globstar       # make **/ traverse directories recursively (requires bash 4)
rename 'BEGIN {use File::Path}
        s!^/data!/raw_data!;
        m!(.*)/!; mkpath($1)' /data/**/*.raw

В zsh опустите shopt -s globstar строка; ** означает рекурсивный обход по умолчанию. В оболочках кроме удара и zsh, необходимо использовать find для рекурсивных обходов (см. примеры ниже). Не волнуйтесь обо всем этом, если у Вас есть единственный уровень каталогов.

Создание целевых каталогов

В zsh (объяснение: / спецификатор шарика означает соответствовать только каталогам, и e спецификатор шарика применяет преобразование, данное впоследствии каждому имени):

mkdir /data/**/*(/e\''REPLY=${REPLY/data/raw_data}'\')

С другими оболочками:

find /data -type d \
     -exec sh -c 'for d; do mkdir "/raw_data${d#/data}"; done' _ {} +

Если у Вас только есть один уровень подкаталогов, это намного более просто:

for d in /data/*/; do mkdir "/raw_data${d#/data}"; done

Перемещение файлов (zsh)

autoload zmv
zmv -Q '/data/(**/)(*.raw)(.)' '/raw_data/$1$2'

Перемещение (портативных) файлов

find /data -name '*.raw' \
     -exec sh -c 'for x; do mv "$x" "/raw_data${x#/data}"; done' _ {} +

3
08.05.2012, 04:27
1 ответ

См. этот связанный ответ переполнения стека - https://stackoverflow.com/questions/2927672/how-can-i-get-git-status-to-always-use-short-format

Похоже, что наилучший вариант сделал бы псевдоним, таким образом, Вы могли ввести git s получить короткий список вместо git status --short и затем просто используйте git status для --verbose список.

git config --global alias.s 'status --short'
9
27.01.2020, 21:10
  • 1
    Другие люди упомянул, что делал сценарий оболочки названным gits это выполнилось git status --short; Я предполагаю, что это сохранило бы Вас одно нажатие клавиши :P –  paulrehkugler 08.05.2012, 05:17

Теги

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