Например, чтобы временно отключить клавиатуру для очистки:
$ xinput float id #; sleep t; xinput reattach id # master #
t [!d2 ] в секундах
id # и master #, как указано выше (например, на моем ноутбуке:
$ xinput float 11; sleep 5; xinput reattach 11 3 [ ! d11]
Я просто добавил это, потому что мне все время нравится чистить клавиатуру. Я должен перезагрузиться, поэтому я это обнаружил!
В ваших дополнениях вы получили ошибки, но код все еще работал. Единственное, что нужно добавить, это то, что вы сказали ему только скопировать точечные файлы. Попробуйте:
mv src/* src/.* dst/
Вы все равно получите ошибки для. и .. записи, что хорошо. Но движение должно быть успешным.
~/scratch [andrew] $ mv from/* from/.* to/
mv: cannot move ‘from/.’ to ‘to/.’: Device or resource busy
mv: cannot remove ‘from/..’: Is a directory
~/scratch [andrew] $ ls -a from/ to/
from/:
. ..
to/:
. .. test .test
Если вы ls -l в каталоге, вы увидите . и .. среди перечисленных файлов. Итак, я думаю, что mv .* /dest учитывает эти указатели. Попробуйте:
mv /tmp/home/rcook/{*,.[^.]*,..?*} /home/rcook/
это будет игнорировать те указатели указателей на текущий и родительский.
Вы получите ошибку, если любой из трех паттернов *, [^.]* или не соответствует файлу, поэтому вы должны включать только те, которые соответствуют.
Два возможных решения, о которых я могу думать. Первый заключается в использовании cp вместо этого с его рекурсивной опцией, копирование текущего каталога в пункт назначения.
cp -Rp . /desired/directory
, тогда вы можете удалить исходные файлы в текущем каталоге
В качестве альтернативы, если вы знаете, что файлы называются безопасными (без пробелов, подстановочных знаков, непечатаемых символов) вы можете сделать что-то вроде этого
mv $(ls -A) /desired/directory
На Linux нет такой вещи, как «скрытые» файлы. Файлы, начинающиеся с точки, по умолчанию скрыты от списков файлов.
Чтобы скопировать файлы даже с помощью glob, вам необходимо префикс файла с помощью ., например mv -u .* foo, а затем .foo будет отображаться как foo/.foo при перемещении.
Параметр -u будет перемещать файлы только в том случае, если источник более новый, или адресата отсутствует. Или вы можете просто игнорировать ошибки в перемещении . и .., поскольку они являются специальными файлами и не могут быть перемещены, но они попадают в .* glob оболочкой.
Итак, мы имеем:
a
|-- .foo
`-- bar
и:
b
Я потратил огромное время на лучшее решение, чем все ответы здесь.
Тогда я взял огромный для этой команды:
$ mv --help
Тогда я нашел свою любовь:
$ mv a/ b/ -T
Примечание: Я даже не понимаю аргумента -T. Он просто сделал то, что мне нужно. Здесь он говорит:
-T, --no-target-directory рассматривает DEST как обычный файлЕсли вы хотите скопировать файлы, включая скрытые файлы, в текущий каталог, в котором вы находитесь.
cp -Rp source-directory/. .