Хотите удалить папку & ldquo;. & Rdquo; и & ldquo; .. & rdquo; который я скопировал с моей SD-карты телефона?

Вот мой код терминала:

root@mehedi-Inspiron-1545:/home/mehedi/SD Card/sdcard/10.5.50.31:2121/PhoneStorage/Download# ls -al total 46676 drwxrwxr-x 3 mehedi mehedi 4096 জুল 11 05:36 . drwxrwxr-x 13 mehedi mehedi 4096 জুল 11 05:33 .. -rw-rw-r-- 1 mehedi mehedi 83277 জুল 10 10:18 17861803_1540974315927302_7704865319494415873_n.jpg drwxrwxr-x 2 mehedi mehedi 4096 জুল 10 10:18 Adobe Reader -rw-rw-r-- 1 mehedi mehedi 18952 জুল 10 10:18 config.bin -rw-rw-r-- 1 mehedi mehedi 407930 জুল 10 10:18 download_20170115_010150.jpeg -rw-rw-r-- 1 mehedi mehedi 66275 জুল 10 10:18 DVB-T-w-Gliwicach-kierunki-2014.02.17.jpg -rw-rw-r-- 1 mehedi mehedi 3395403 জুল 10 10:19 Nasi_Lemak,_Mamak,_Sydney.jpg

Теперь может кто-нибудь сказать мне, как удалить указанную папку. и ... эти два были скопированы с моей SD-карты.

1
задан 11 July 2017 в 02:54

4 ответа

Это «жесткие ссылки», которыми управляет сама Linux.

Давайте создадим каталог и посмотрим на его детали:

$ mkdir dir1 $ ls -ld dir1 drwxrwxr-x 2 ravexina ravexina 4096 Jul 11 19:14 dir1/

обратите внимание на число " 2 ", это число ссылок на этот каталог (dir1), одним из которых является имя самого каталога, а другое - . внутри него.

Давайте создадим новый каталог внутри dir1:

$ mkdir dir1/new-dir

теперь посмотрим на данные dir1:

$ ls -ld dir1 drwxrwxr-x 3 ravexina ravexina 4096 Jul 11 19:14 dir1/

Количество ссылок стало «3», и это из-за .. внутри new-dir, который указывает на dir.

Существуют разные способы использования этих двух ссылок, например с .. вы можете перемещаться в директории.

Одним из наиболее важных способов использования . является запуск сценария оболочки внутри каталога, что происходит, когда вы запускаете скрипт с именем for.sh, просто набрав его имя? shell shell подумает, что вы пытаетесь запустить команду с именем foo.sh, она будет искать ее, не сможет найти и выведет ошибку, используя ./script, вы сообщите оболочке точно, какой файл вы хотите запустить. [ ! d8]

0
ответ дан 18 July 2018 в 10:28

Это стандартные обозначения Linux для текущего каталога (.) и родительского каталога (..). Они не имеют ничего общего с Android или SD-картой. Это всего лишь стандартное поведение файловой системы, и они существуют для каждого каталога файловой системы.

$ pwd /home/xieerqi/testdir/parent $ ls -a ./ ../ # going to . directory doesn't do anything, you remain in same place $ cd . $ pwd /home/xieerqi/testdir/parent # going to .. brings you up one level to parent folder $ cd .. $ pwd /home/xieerqi/testdir

Важным исключением является то, что с / корневым каталогом .. укажет на себя, так как нет более высокого каталога для перехода.

Вы не можете выполнить удаление на них тоже (что не имеет смысла, поскольку вы пытаетесь избавиться от своего текущего рабочего каталога или его родителя):

$ pwd /home/xieerqi/testdir/parent $ rm -r . rm: refusing to remove '.' or '..' directory: skipping '.' $

Итак, что вы должны делать с ними? Ничего. Они являются частью пакета Linux, так сказать. Это не сломано, поэтому не пытайтесь его исправить.

Частое использование . осуществляется через ./ нотацию. Это можно использовать в том случае, если вы запускали сценарий или исполняемый файл в текущем рабочем каталоге, например ./myscript.sh или в качестве аргумента команды, означающий файл в текущем каталоге, например ls ./myfile.txt. Последний подход часто используется с globstar для расширения до нескольких имен файлов в текущем каталоге, таких как ls ./*. Этот подход особенно полезен для имен файлов, которые могут содержать ведущие -, и поэтому такие имена файлов могут быть неверно истолкованы командами в качестве аргументов, в то время как ./-myfile.txt избегает этой проблемы.

Также важно отметить, что поскольку имена файлов, содержащие ведущие точки считаются скрытыми в Linux, эти две «указательные» каталоги можно увидеть, если вы явно указали для команды, которую используете для обработки скрытых имен файлов (если ваша команда, например find, не делает этого по умолчанию).

См. также: https://unix.stackexchange.com/a/63087/85039

4
ответ дан 18 July 2018 в 10:28

Это «жесткие ссылки», которыми управляет сама Linux.

Давайте создадим каталог и посмотрим на его детали:

$ mkdir dir1 $ ls -ld dir1 drwxrwxr-x 2 ravexina ravexina 4096 Jul 11 19:14 dir1/

обратите внимание на число " 2 ", это число ссылок на этот каталог (dir1), одним из которых является имя самого каталога, а другое - . внутри него.

Давайте создадим новый каталог внутри dir1:

$ mkdir dir1/new-dir

теперь посмотрим на данные dir1:

$ ls -ld dir1 drwxrwxr-x 3 ravexina ravexina 4096 Jul 11 19:14 dir1/

Количество ссылок стало «3», и это из-за .. внутри new-dir, который указывает на dir.

Существуют разные способы использования этих двух ссылок, например с .. вы можете перемещаться в директории.

Одним из наиболее важных способов использования . является запуск сценария оболочки внутри каталога, что происходит, когда вы запускаете скрипт с именем for.sh, просто набрав его имя? shell shell подумает, что вы пытаетесь запустить команду с именем foo.sh, она будет искать ее, не сможет найти и выведет ошибку, используя ./script, вы сообщите оболочке точно, какой файл вы хотите запустить. [ ! d8]

0
ответ дан 24 July 2018 в 19:34

Это стандартные обозначения Linux для текущего каталога (.) и родительского каталога (..). Они не имеют ничего общего с Android или SD-картой. Это всего лишь стандартное поведение файловой системы, и они существуют для каждого каталога файловой системы.

$ pwd /home/xieerqi/testdir/parent $ ls -a ./ ../ # going to . directory doesn't do anything, you remain in same place $ cd . $ pwd /home/xieerqi/testdir/parent # going to .. brings you up one level to parent folder $ cd .. $ pwd /home/xieerqi/testdir

Важным исключением является то, что с / корневым каталогом .. укажет на себя, так как нет более высокого каталога для перехода.

Вы не можете выполнить удаление на них тоже (что не имеет смысла, поскольку вы пытаетесь избавиться от своего текущего рабочего каталога или его родителя):

$ pwd /home/xieerqi/testdir/parent $ rm -r . rm: refusing to remove '.' or '..' directory: skipping '.' $

Итак, что вы должны делать с ними? Ничего. Они являются частью пакета Linux, так сказать. Это не сломано, поэтому не пытайтесь его исправить.

Частое использование . осуществляется через ./ нотацию. Это можно использовать в том случае, если вы запускали сценарий или исполняемый файл в текущем рабочем каталоге, например ./myscript.sh или в качестве аргумента команды, означающий файл в текущем каталоге, например ls ./myfile.txt. Последний подход часто используется с globstar для расширения до нескольких имен файлов в текущем каталоге, таких как ls ./*. Этот подход особенно полезен для имен файлов, которые могут содержать ведущие -, и поэтому такие имена файлов могут быть неверно истолкованы командами в качестве аргументов, в то время как ./-myfile.txt избегает этой проблемы.

Также важно отметить, что поскольку имена файлов, содержащие ведущие точки считаются скрытыми в Linux, эти две «указательные» каталоги можно увидеть, если вы явно указали для команды, которую используете для обработки скрытых имен файлов (если ваша команда, например find, не делает этого по умолчанию).

См. также: https://unix.stackexchange.com/a/63087/85039

4
ответ дан 24 July 2018 в 19:34

Другие вопросы по тегам:

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