Comando (2) clase de archivo y carpeta

Prefacio: Para ordenar algunos comandos que uso habitualmente, no será muy detallado, pero es muy práctico.

1. Ver estructura de carpetas

usar Orden nota
Ver estructura de carpetas (no muestra archivos ocultos) árbol Necesita instalar el árbol: sudo apt-get install tree
Ver estructura de carpetas (mostrar archivos ocultos) árbol -a
Ver estructura de carpetas (solo se muestran las carpetas) árbol -d
Ver estructura de carpetas (mostrar carpeta especificada) carpeta de destino del árbol Por ejemplo: árbol mydir
Ver la estructura de archivos del directorio de primer nivel árbol -L 1 Agregue "-a" después para mostrar todos los archivos (incluidos los archivos ocultos)
inserte la descripción de la imagen aquí

2. Comandos del administrador de archivos

● Ejemplo: Abra la carpeta en la ruta actual en la terminal

nautilus .

3. Ver el tamaño de la carpeta

● Ejemplo 1: mostrar el tamaño de la carpeta actual (si desea enumerar todos los subdirectorios del directorio actual, establezca la profundidad en 1)

du -h --max-depth=0

● Ejemplo 2: mostrar la carpeta de ruta o el tamaño de archivo especificado

du -sh 指定路径文件夹/文件

● Ejemplo 3: Mostrar el tamaño de todos los directorios de primer nivel en una carpeta (excluyendo archivos y carpetas ocultos)
inserte la descripción de la imagen aquí
● Ejemplo 4: Ver el tamaño de todos los archivos y carpetas ocultos en el directorio actual

du -sh .[!.]*

● Ejemplo 5: du -sh con sort

sun@sun-pc:~/project/AOSP$ du -sh ./* | sort -h
0	./Android.bp
0	./bootstrap.bash
0	./vbmeta.img.info
4.0K	./disregard
4.0K	./Makefile
...
1.9G	./frameworks
26G	./prebuilts
72G	./out

Explicación:
si sort no agrega -h, habrá una situación en la que 4.0k esté por debajo de 1.9G, porque el comando sort se ordena de acuerdo con el código ascii de la primera columna de caracteres de forma predeterminada, obviamente el contenido generado por du -sh no se puede ordenar.
sort -h : usa números de legibilidad (por ejemplo: 2K 1G), de hecho, el factor de unidad también se considera al ordenar.


4. Permisos de archivos y carpetas

1. Descripción del permiso
En el sistema de archivos de Linux, los archivos o carpetas tienen tres conjuntos de permisos rwx.Los siguientes ejemplos ilustran:

sun@sun-pc:~$ ls -l
rw-r-xr-x 1 sun sun    0 59 18:20 1.txt

Contando de izquierda a derecha, los tres grupos de permisos representan:
(1) Los permisos del archivo 所属用户al archivo, incluidos los permisos de lectura, escritura y no ejecutables (rw-)
(2) Los 用户组permisos del archivo al que pertenece el archivo. pertenece, incluido el ejecutable Lectura, no escritura, ejecutable (rx)
(3) 其他用户Permisos para el archivo, incluidos los permisos de lectura, no escritura y ejecutable (rx)

2. Cambiar permisos
Use el comando chmod para cambiar los permisos de archivos o carpetas, o use el 1.txt anterior como ejemplo:

#为所属用户添加可执行权限
chmod u+x 1.txt

#为所属用户组添加可写权限
chmod g+w 1.txt

#为其他用户添加可写权限
chmod o+w 1.txt

#为所有用户添加写权限
chmod a+w 1.txt

#为所属用户和用户组添加写权限
chmod ug+w 1.txt

#为所属用户和用户组添加读写权限
chmod ug+rw 1.txt

Además de los métodos anteriores, también puede usar directamente números para representar permisos. - - - Puede considerarse como el número binario 000 y rwx como el número binario 111. Cuando use chmod para agregar permisos, simplemente convierta el número binario a octal. Cabe señalar que el número representa completamente todos los permisos, y un determinado permiso no se puede agregar por separado. Por lo tanto, cuando cambie los permisos, preste atención al cálculo de los números de permiso de acuerdo con las necesidades reales, para evitar cambiar un permiso que no necesita. quiero cambiar por error.

#更改所属用户权限为r-x,用户组权限为--x,其他用户权限为rw-
chmod 516 1.txt

5. Encuentra archivos

Ejemplo: busque el archivo test.txt

5.1 localizar

sun@sun-pc:~/myProjects$ locate /test.txt    #locate只能查找文件名包含test.txt的文件,所以这里加上路径分割符号“/”
/home/sun/Share/frameworks/base/tools/aapt2/integration-tests/App/assets/test.txt
/home/sun/Share/frameworks/base/tools/aapt2/integration-tests/App/assets/subdir/subsubdir/test.txt
/home/sun/Share/frameworks/base/tools/aapt2/integration-tests/App/assets2/test.txt
/home/sun/Share/frameworks/base/tools/aapt2/integration-tests/App/res/raw/test.txt
/home/sun/Share/frameworks/compile/mclinker/unittests/test.txt
/home/sun/test.txt

Nota:
(1) localizar es buscar un determinado archivo en la base de información del sistema, la velocidad es rápida y el nombre del archivo distingue entre mayúsculas y minúsculas.
(2) Si se confirma que existe un determinado archivo, pero no se encuentra ninguna ubicación, debe ser causado por la falta de actualización de la base de información.Ejecute el siguiente comando para actualizar la base de información:

sudo updatedb       //一般时间较久,建议空闲时间执行

5.2 encontrar

Ejemplo 1: busque el archivo test.txt

find -name "test.txt"


Ejemplo 2: Excluir un determinado directorio al buscar el archivo test.txt-path 要排除的目录 -prune -o Si desea excluir varios directorios, simplemente escriba algunas oraciones más.

find ./ -path ./out -prune -o -name test.txt       //在当前目录下查找test.txt,查找的时候排除当前目录下的out目录

Ejemplo 3: busque el archivo en el directorio A con el mismo nombre que el archivo en el directorio B

find A目录路径 -type f | sed 's/.*\///' | xargs -L 1 find -name

Los tres comandos anteriores están conectados a través de símbolos de tuberías y se explican por separado:

  • encuentre la ruta del directorio A -escriba f
    para encontrar todos los archivos en el directorio A
  • sed 's/.*///'
    elimina la ruta en la salida del comando anterior, dejando solo el nombre del archivo
  • xargs -L 1 find -name
    -L 1 significa tomar el resultado del procesamiento del comando anterior una línea a la vez como find -nameparámetro

Ejemplo 4: limitar el nivel de búsqueda recursiva
Si en el ejemplo 3 no busca archivos en subdirectorios recursivos, puede utilizar -maxdepth parámetros para limitar el nivel de directorio de búsqueda.
-maxdepth 0Representa el directorio de nivel 0, es decir, no busca;
-maxdepth 1representa el directorio de primer nivel, que es el directorio raíz de la ruta de destino; y así sucesivamente...

find A目录路径 -maxdepth 1 -type f | sed 's/.*\///' | xargs -L 1 find -maxdepth 1 -name

Nota:
(1) El comando de búsqueda busca un archivo directamente desde el disco, por lo que la velocidad es relativamente lenta.
(2) A veces, cuando find busca recursivamente un archivo en un directorio, aparecerán errores como "No existe tal archivo o directorio". Si no desea ver estos mensajes de error, puede usar el error estándar [2] con el carácter de redirección [>] para filtrar los mensajes de error:

find -name "test.txt" 2> /dev/null    //把错误信息输入到空设备中,注意2和>之间没有空格

6. Encuentra contenido específico en un archivo

● Ejemplo 1: en todos los archivos en el directorio de la cámara (incluidos los archivos en todos sus subdirectorios), busque el nombre de la cadena: "libhidlbase"

grep -r 'name: \"libhidlbase\"' ./camera

● Ejemplo 2: busque el nombre de la cadena en archivos cuyo sufijo sea mk en el directorio y subdirectorios actuales

grep -r "name" --include="*.mk" ./*

● Ejemplo 3: lista de todos los subdirectorios de primer nivel en este directorio

ls -l | grep ^'d'           //这个筛选原理是根据ls -l列出文件和目录的时候前边有类型符号,d开头的就是目录,-开头代表文件
parámetro nota
-r Búsqueda recursiva, el archivo de enlace no se incluye de forma predeterminada, a menos que la ruta del archivo de enlace se especifique después del comando
-R Búsqueda recursiva, incluidos los archivos vinculados
-norte mostrar número de línea
-l Excluir búsquedas en archivos binarios
–incluir= Indica en qué archivos buscar y, cuando se incluyen varios archivos, use {} para encerrar los archivos. Tenga en cuenta que la redacción aquí son dos barras horizontales seguidas de "include=", y no puede haber espacios antes y después del signo igual. (por ejemplo: –include={*.c,test.h})
–excluir= Indica qué archivos no se van a buscar, el uso es –include=el mismo que

Nota:
1. Cuando busque un símbolo, debe agregar un carácter de escape delante de la coincidencia \(por ejemplo: \" significa ")
2. Para encontrar una barra invertida \, debe usar tres barras invertidas como carácter de escape, tales como: grep -rn "\ \\\”
2. Al escribir solo -rsin especificar el rango de búsqueda, el directorio actual se buscará de forma predeterminada, por lo que ./*no es necesario escribir en el ejemplo anterior 2

7. Compresión y descompresión de archivos

7.1 Usar paquete de compresión tipo 7z

Ejemplo de compresión
: comprima los tres archivos 1.txt 2.txt 3.txt en el archivo test.7z

7z a test.7z 1.txt 2.txt 3.txt

Ejemplo de descompresión
: Descomprima el archivo test.7z

7z x test.7z
parámetro nota
a Representa la adición de archivos/carpetas al archivo
X Representa archivos descomprimidos y se descomprime de acuerdo con el árbol de directorios original
-o Es para especificar el directorio a descomprimir, no hay espacio después de -o, conectar directamente al directorio

7.2 Usar paquete de compresión tipo alquitrán

compresión:

tar -zcvf test.tar.bz2 1.txt 2.txt

Abrir la cremallera:

tar -zxvf test.tar.bz2
parámetro nota
-C Crear un archivo comprimido en nombre de
-X Descomprime el archivo
-t Ver los archivos en el paquete comprimido
-z Comprimir/descomprimir con gzip
-j Comprimir/descomprimir con bzip2
-v Mostrar barra de progreso de compresión/descompresión
-F Use el nombre del archivo (nota: no tome parámetros después de f, -zxfv es incorrecto, debe escribirse como -zxvf)

7.3 Usar paquete de compresión tipo rar

compresión:

rar a test.rar 1.txt 2.txt

Abrir la cremallera:

unrar e test.rar   //把压缩包里所有的文件都解压到当前目录
unrar x test.rar   //把压缩包正常解压到当前路径

7.4 Usa el tipo zip para comprimir el paquete

compresión:

zip -r test.zip 1.txt 2.txt

Abrir la cremallera:

unzip test.zip

8. Montaje y desmontaje del sistema de archivos

Hable brevemente sobre lo que es el montaje.El montaje se refiere a vincular el archivo del dispositivo con la carpeta en el sistema operativo, de modo que se pueda acceder a la información del dispositivo accediendo a esta carpeta. En circunstancias normales, después de que el dispositivo esté conectado al sistema operativo, el sistema operativo lo montará automáticamente. Por ejemplo, si insertamos una unidad flash USB en la computadora normalmente, el sistema lo montará automáticamente y aparecerá una partición de disco, para que podamos leer y escribir la unidad flash USB, etc. Operado. En algunos casos especiales, los desarrolladores necesitan montar y desmontar manualmente, luego se necesitan los comandos de montaje y desmontaje.

El formato básico del comando de montaje: montaje [-t tipovfs] [-o opciones] directorio del dispositivo

● Ejemplo 1: /dev/sdb1montar el dispositivo en /mntel directorio

mount /dev/sdb1 /mnt              //这里没有指定vfstype,因为系统会自动匹配合适的文件系统类型

● Ejemplo 2: /systemVuelva a montar el dispositivo montado y hágalo legible y escribible

mount -o remount,rw /system          //这里使用"-o"指定了两个选项(remount和rw),选项之间用逗号分隔开

● Ejemplo 3: desinstalar el/dev/sdb1

umount -v /dev/sdb1   或者     umount -v /mnt                 //两种方式都可以,-v表示执行时显示详细信息

Nota:
1. Los resultados de montaje y desmontaje se pueden df -ahver
a través de comandos. 2. A veces, el dispositivo no se puede desmontar porque un proceso está usando el dispositivo. En este momento, puede ejecutar el siguiente comando para ver el proceso ocupado y usar el comando kill comando para matar el proceso

fuser -m /dev/sdb1

9. Entrada y salida estándar

tee:读取标准输入的内容并输出到标准输出和文件
Ejemplo: complete el contenido "deb [trusted=yes] http://10.1.1.4/debian ./" al final del archivo source.list en la línea de comando y redirija el resultado de la ejecución a un dispositivo vacío

echo "deb [trusted=yes] http://10.1.1.4/debian ./" | tee -a /etc/apt/sources.list > /dev/null

Nota: La opción -a significa agregar al archivo dado, pero no sobrescribir

10. Ver información del archivo

10.1 comando ls

Orden significado
ls Listar todos los archivos y directorios visibles en el directorio actual
ls -l Enumere todos los archivos y directorios visibles en el directorio actual en forma de lista
todos Enumere todos los archivos y directorios visibles en el directorio actual en forma de lista, incluidos ./ y .../
ls-lt Enumere todos los archivos y directorios visibles en el directorio actual en forma de lista, ordenados por tiempo en orden descendente
ls-lrt -r significa orden inverso, opuesto a ls -lt clasificación
ls -F Visualización distinguida, diferentes tipos tienen diferentes características de visualización
Archivos ordinarios: blanco, sin ningún símbolo especial
Archivos vinculados: azul cielo, con
carpeta @ al final: azul,
archivos con/con permiso de ejecución al final: verde, con * al final fin

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Extensión:
eliminar todos los subdirectorios de este directorio

sun@sun-pc:~/temp$ ls -F | grep /$ | xargs rm -rv
removed directory 'test1/'
removed directory 'test2/'
removed directory 'test3/'
removed directory 'test4/'

10.2 comando de estadísticas

inserte la descripción de la imagen aquí

11. Salida del contenido del archivo a la terminal

cat filename                              #将文件filename的内容输出到终端上
cat filename | grep xxx                   #筛选包含字符串"xxx"的内容到输出到终端上
cat filename | grep xxx -n                #输出包含字符串"xxx"的行数到终端上
cat filename | tail -n 10                 #输出的最后10行内容
cat filename | head -n 10                 #输出的头10行内容
cat filename | tail -n +10                #输出第10行及以后的内容
cat filename | tail -n +10 | head -n 20   #输出第10~20行内容

12. Comando de copia de archivo cp

Todo el mundo está familiarizado con el comando de copia cp, y el uso especial se presenta de la siguiente manera
● Ejemplo 1: copiar main.mk a a/build/make/core/yb/build/make/core/

echo a/build/make/core/ b/build/make/core/ | xargs -n 1 cp -v main.mk

Nota:
echoLa función aquí es imprimir el directorio de destino para que lo use xargs
xargs -n 1: limite el número máximo de parámetros para cada comando a 1 y pase los parámetros al comando cp
cp -v: el significado de -v es mostrar información detallada cuando proceso de copiar

● Ejemplo 2: 多个文件(1.txt,2.txt)Copiar a/home/user/temp

cp 1.txt 2.txt /home/user/temp

● Ejemplo 3: 1.txtcopie todos los archivos y directorios en la ruta actual a/home/user/temp

cp -rf !(1.txt) /home/user/temp

#扩展:上面是排除1.txt一个文件,排除多个文件如下
cp -rf !(1.txt|2.txt) /home/user/temp

Supongo que te gusta

Origin blog.csdn.net/In_engineer/article/details/127503593
Recomendado
Clasificación