Подстановка имени файла в путь папки для загрузки
Closed this issue · 4 comments
Только что столкнулся с одним неприятным обстоятельством: как обычно я пользуюсь cp
, написал ydcmd put file.jar Dir/dir
, ожидая что файл загрузится в эту папку. Вместо этого у меня снеслась ВСЯ папка dir
, даже не попав в корзину.
Я теперь знаю, что надо было писать примерно так: ydcmd put file.jar Dir/dir/file.jar
. Но, может, исправить эту ошибку на будущее?
Очень жаль, что вы потеряли файлы перезаписав их, но в данном случае программа повела себя именно так, как задумывалось. Для того, чтобы положить файл в директорию с тем же именем можно использовать следующий синтаксис (обратите внимание на слеш /
в конце, который и указывает на то, что файл нужно положить в директорию):
$ ydcmd put file.jar Dir/dir/
Так же, для того, чтобы удаление (намеренное или ненамеренное) приводило к удалению в корзину, необходимо использовать параметр --trash
в командной строке или добавить trash = 1
в конфигурационный файл ~/.ydcmd.cfg
:
$ ydcmd --trash put file.jar Dir/dir
$ ydcmd ls trash:/
<перезаписанная директория переместится в корзину>
Хм, про добавление trash
в конфиг не был в курсе.
Ладно, спасибо за ответ. Ваша программа очень пригодилась для скрипта 😀
Сейчас столкнулся с точно такой же ситуацией. Не указал в конце /, в результате скрипт удалил всю папку. ИМХО, необходимо в скрипке учитывать такой момент (имею ввиду отсутствие слеша в конце) , потому что в стандартных утилитах, типа mv,cp и т.п. слеш не обязателен и мы по привычке пишем без него.
думаю попробовать написать bash_completion
скрипт, который бы при нажатии на TAB
заполнял аргументы как нужно. Перед заполнением скрипту придется отправлять запросы типа команды ydcmd.py ls
и фильтровать ее вывод. Ему нужно будет понимать что является файлом и что директорией