AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / 问题

Perguntas[files](unix)

Martin Hope
Ari Cooper-Davis
Asked: 2025-03-18 23:44:23 +0800 CST

O aplicativo "Arquivos" do Fedora fornece uma descrição errada de "Tipo Detalhado"

  • 4

Estou no Fedora 41 (Gnome 47).

Instalei o Foxit Reader para ler PDFs, não gostei e desinstalei.

Agora, a Detailed Typedescrição no Filesprograma para todos os documentos PDF é FoxitReader Document.

Captura de tela do aplicativo Arquivos mostrando o Tipo Detalhado errado

Como faço para remover esta referência ao Foxit Reader?

files
  • 2 respostas
  • 48 Views
Martin Hope
Aniruddha
Asked: 2025-03-17 09:54:03 +0800 CST

Por que alguns arquivos não podem ser pesquisados?

  • 5

Achei que todos os arquivos eram pesquisáveis, mas estou analisando uma base de código que lida com casos em que um arquivo não é pesquisável.

Por que isso é necessário?

Em quais cenários um arquivo não poderia ser encontrado e por quê?

files
  • 1 respostas
  • 110 Views
Martin Hope
sdbbs
Asked: 2025-02-19 19:10:39 +0800 CST

Encontrar itens por nome e imprimir se forem arquivos de diretórios?

  • 9

Considere o seguinte exemplo:

mkdir /tmp/test2 && cd /tmp/test2
mkdir -p aa/{tmp,src}
mkdir -p bb/aa/{tmp,src}
mkdir -p {dd,ee}/bb
touch {dd,ee}/bb/aa

tree | awk '{print "# " $0}'
# .
# ├── aa
# │   ├── src
# │   └── tmp
# ├── bb
# │   └── aa
# │       ├── src
# │       └── tmp
# ├── cc
# │   └── aa
# │       ├── src
# │       └── tmp
# ├── dd
# │   └── bb
# │       └── aa
# └── ee
#     └── bb
#         └── aa
#
# 16 directories, 2 files

Então, quero encontrar todos os itens chamados aa, e imprimi-los no mesmo formato que ls -la, para poder ver se são arquivos ou diretórios.

Se eu fizer o típico findwith execof ls -a- então os diretórios em si não serão impressos como itens, mas sim seus conteúdos:

$ find . -name aa -exec ls -la {} \;
total 0
drwxr-xr-x 1 user None 0 Feb 19 11:59 .
drwxr-xr-x 1 user None 0 Feb 19 12:00 ..
drwxr-xr-x 1 user None 0 Feb 19 11:59 src
drwxr-xr-x 1 user None 0 Feb 19 11:59 tmp
total 0
drwxr-xr-x 1 user None 0 Feb 19 11:59 .
drwxr-xr-x 1 user None 0 Feb 19 11:59 ..
drwxr-xr-x 1 user None 0 Feb 19 11:59 src
drwxr-xr-x 1 user None 0 Feb 19 11:59 tmp
total 0
drwxr-xr-x 1 user None 0 Feb 19 11:59 .
drwxr-xr-x 1 user None 0 Feb 19 11:59 ..
drwxr-xr-x 1 user None 0 Feb 19 11:59 src
drwxr-xr-x 1 user None 0 Feb 19 11:59 tmp
-rw-r--r-- 1 user None 0 Feb 19 12:00 ./dd/bb/aa
-rw-r--r-- 1 user None 0 Feb 19 12:00 ./ee/bb/aa

Se eu usar ls -lad {}/isso, imprimo explicitamente apenas os nós do diretório, então os nós do arquivo não são impressos, mas recebo um erro "Não é um diretório":

$ find . -name aa -exec ls -lad {}/ \;
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./aa/
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./bb/aa/
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./cc/aa/
ls: cannot access './dd/bb/aa/': Not a directory
ls: cannot access './ee/bb/aa/': Not a directory

Se eu tentar algum tipo de bashcondicional diretamente na linha de comando, ele falha:

# test
$ [ -d aa ] && echo dir || echo file
dir

$ find . -name aa -exec [ -d {} ] && ls -lad {}/ || ls -la {} \;
find: missing argument to `-exec'
ls: cannot access '{}': No such file or directory
ls: cannot access ';': No such file or directory

Então, como posso usar find . -name aa, para que eu obtenha esta saída:

drwxr-xr-x 1 user None 0 Feb 19 11:59 ./aa/
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./bb/aa/
drwxr-xr-x 1 user None 0 Feb 19 11:59 ./cc/aa/
-rw-r--r-- 1 user None 0 Feb 19 12:00 ./dd/bb/aa
-rw-r--r-- 1 user None 0 Feb 19 12:00 ./ee/bb/aa
files
  • 2 respostas
  • 168 Views
Martin Hope
Apollucas
Asked: 2025-01-26 22:28:58 +0800 CST

Como faço para que `ls` classifique da mesma forma que o Thunar classifica os arquivos?

  • 14

O título é um resumo do que estou tentando alcançar, mas darei um exemplo para ilustrar qual é meu problema e como estou tentando resolvê-lo.

Pasta de exemplo

Digamos que eu tenha uma pasta em um sistema Linux com os seguintes arquivos: .a, .A, .b, .B, a, A, be B.

Thunar

Quando abro a pasta no Thunar, meu gerenciador de arquivos preferido, os arquivos são exibidos nesta ordem:

.a
.A
.b
.B
a
A
b
B

Esta é uma saída que faz sentido para mim; primeiro os arquivos ocultos (ou diretórios), depois classificados alfabeticamente (onde o caso é levado em conta). De preferência, eu teria os arquivos em letras maiúsculas classificados antes dos em letras minúsculas, mas não é tão ruim. Em outras palavras, esta é a saída que estou tentando obter com ls.

ls

Quando quero listar os arquivos desta pasta via ls, isto é o que obtenho:

$ ls -lA
total 0
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .a
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 a
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .A
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 A
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .b
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 b
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .B
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 B

Aqui, os arquivos ocultos não são classificados no topo, mas os arquivos em geral são classificados em uma ordem alfabética "sensata".

Experimentando com LC_ALL=CeLC_COLLATE=C

Algumas soluções para classificar os arquivos ocultos no topo são definir temporariamente LC_ALLou LC_COLLATEcomo C(estou com dificuldade para ver a diferença entre os dois, então uma explicação seria muito apreciada):

$ LC_ALL=C ls -lA
total 0
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .A
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .B
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .a
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .b
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 A
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 B
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 a
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 b
$ LC_COLLATE=C ls -lA
total 0
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .A
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .B
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .a
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 .b
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 A
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 B
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 a
-rw-r--r-- 1 lucas lucas 0 Jan 26 14:58 b

Como você pode ver, isso resolve o problema dos arquivos ocultos, mas o comportamento da classificação alfabética agora é inconsistente com a forma como o Thunar classifica os arquivos em ordem alfabética.

Questões

Então isso levanta a questão: como eu consigo lsclassificar da mesma forma que o Thunar? De preferência, eu quero evitar o pipe lspara outro comando como sort, já que eu gostaria de criar um alias para esse novo comando para "ls"ele mesmo.

E se isso não for possível, como posso fazer o Thunar classificar os arquivos da maneira que lsele classificaria os arquivos (o método LC_ALL=C/ LC_COLLATE=Cparece bom o suficiente para mim)?

Por extensão, gostaria de perguntar quais são as melhores práticas ao classificar arquivos em ordem alfabética. O comportamento que acabei de descrever é exatamente o que parece sensato para mim, mas talvez não seja, afinal?

files
  • 2 respostas
  • 871 Views
Martin Hope
intelfx
Asked: 2025-01-21 04:45:00 +0800 CST

Existe uma ferramenta para mover/renomear um diretório "recursivamente" (com conflitos/mesclagem)?

  • 5

Imagine que eu queira mover (renomear) uma árvore de diretórios /var/lib/postgres/datapara /var/lib/postgres/data.old:

/var/lib/postgres
└── data
    ├── base
    │   ├── 16390
    │   │   └── <...>
    │   └── <...>
    │       └── <...>
    ├── global
    │   └── <...>
    ├── pg_wal
    │   ├── <...>
    │   ├── archive_status
    │   └── summaries
    ├── <...>
    └── postmaster.pid

Normalmente, basta uma única rename()chamada de sistema e um único comando: mv data data.old.

Entretanto, imagine que haja um ponto de montagem ativo em algum lugar nessa árvore de diretórios, por exemplo, pg_walem um sistema de arquivos diferente:

$ findmnt
<...>
├─/var/lib/postgres                           stank/data/stratofortress/PostgreSQL                              zfs       rw,noatime,xattr,posixacl,casesensitive
│ └─/var/lib/postgres/data/pg_wal             stank/data/stratofortress/PostgreSQL/pg_wal                       zfs       rw,noatime,xattr,posixacl,case-sensitive
<...>

Alternativamente, imagine que o nome de destino ( data.old) já existe e alguns ramos da árvore de diretórios já foram criados (porque são pontos de montagem, na mesma linha acima).

~~Em ambos os casos~~ No último caso, mvse recusará a fazer qualquer coisa. Executar uma cópia profunda com algo como a cp -aé proibitivamente caro, e reflinks não estão disponíveis por razões que estão fora do escopo desta questão.


Existe uma ferramenta que pode executar um "movimento recursivo" ideal, descendo iterativamente em partes da hierarquia de origem para cada subárvore que não pode ser renomeada por completo, até arquivos individuais (finalmente voltando a fazer uma cópia de cada arquivo individual, se necessário)?

NB: Estou procurando uma solução generalizada que possa ser estendida a qualquer número de subárvores e conflitos, ou seja, mv data/* -t data.old; mv data/pg_wal/* -t data.old/pg_walnão é uma solução. Em outras palavras, por favor, não infira nenhuma restrição ou caso especial do exemplo acima.

files
  • 1 respostas
  • 34 Views
Martin Hope
Rodion Gorkovenko
Asked: 2024-11-14 16:50:39 +0800 CST

Por que /sys/devices/.../product_serial às vezes é lido como lixo?

  • 9

O serviço lê sys/devices/virtual/dmi/id/product_serialem algum lugar no início e geralmente contém algum número hexadecimal típico de dez dígitos (por exemplo 01212302C5, ) com nova linha. No entanto, às vezes o conteúdo não é analisável para string - bytes em hexadecimal são f8 6a 32 6d 0ae não consigo descobrir por que e como isso acontece. O último 0aparece sugerir que ainda deveria ser texto. Acontece geralmente em CI, mas não tenho certeza se o ambiente em contêiner pode ser de alguma forma o motivo do problema.

Qual poderia ser a razão de um comportamento tão estranho?

files
  • 1 respostas
  • 236 Views
Martin Hope
Moeren
Asked: 2024-10-27 07:02:34 +0800 CST

É possível executar um script quando um arquivo é acessado?

  • 6

Eu tenho um programa que, toda vez que ele faz algo, ele relê seu arquivo de configuração. Eu gostaria de substituir esse arquivo por algum tipo de arquivo virtual, que chama um script e gera os dados de configuração na hora. Eu não posso mudar a maneira como o arquivo é chamado, senão eu poderia simplesmente canalizar os dados de configuração. Então, toda vez que meu arquivo "stuff.conf" é lido, ele deve obter a saída de stuff.sh em execução.

Senão eu teria que reescrever essa configuração periodicamente, mas poderia haver horas ou segundos entre as mudanças nos dados de origem ou leituras do programa. Então eu teria que definir o timer muito baixo e provavelmente desperdiçaria recursos 90% do tempo.

files
  • 3 respostas
  • 57 Views
Martin Hope
Pete Cooper
Asked: 2024-09-22 00:18:29 +0800 CST

Como posso editar arquivos em `/sys/kernel/mm/ksm/` para sobreviver a reinicializações?

  • 8

Estou configurando o Netdata em um Debian 12 VPS na Hetzner Cloud. Parte do preflight é garantir que dois arquivos /sys/kernel/mm/ksm/estejam definidos com os valores necessários:

  • /sys/kernel/mm/ksm/rundeveria ser 1; atualmente é 0.
  • /sys/kernel/mm/ksm/sleep_millisecsdeveria ser 1000; atualmente é 20.

Minha rota de rm-> echo+ tee-> chown-> chmodestá falhando na primeira etapa, pois não tenho permissão para rm -fnenhum dos arquivos:

$ sudo rm -f /sys/kernel/mm/ksm/run
rm: cannot remove '/sys/kernel/mm/ksm/run': Operation not permitted

O uso sedno local também falha com Permission denied.

Qual é a maneira mais segura/sensata de fazer alterações persistentes em /sys/kernel/mm/ksm/, por favor?

files
  • 2 respostas
  • 332 Views
Martin Hope
revsuine
Asked: 2024-08-24 00:16:57 +0800 CST

Quais sistemas de arquivos permitem melhor o apagamento completo de um arquivo?

  • 6

Portanto, o shredutilitário supostamente permite excluir um arquivo "com segurança", sobrescrevendo-o repetidamente com dados aleatórios.

Obviamente, em sistemas de arquivos copy-on-write, é quase impossível apagar completamente os dados que já foram gravados nele.

No entanto, li que sistemas de arquivos registrados em diário como EXT3/4 e XFS também são shredineficazes.

Suponha que eu quisesse um sistema de arquivos onde a principal prioridade fosse a capacidade de excluir arquivos da forma mais segura possível. Quais sistemas de arquivos seriam melhores para esse propósito?

Estou ciente da criptografia de unidade, mas quando você descriptografa uma unidade, entendo que você pode fazer a recuperação de arquivos na unidade como se ela não estivesse criptografada. Quero ter proteção para arquivos excluídos confidenciais, mesmo que um invasor consiga passar pela criptografia da unidade.

files
  • 1 respostas
  • 38 Views
Martin Hope
user11718766
Asked: 2024-08-04 20:13:50 +0800 CST

Preservando extensões de arquivo ao renomear arquivos duplicados com rsync

  • 5

Tenho vários diretórios cujos conteúdos se sobrepõem. Às vezes os arquivos são exatamente iguais, às vezes os nomes são iguais e o conteúdo é diferente e às vezes os arquivos com o mesmo nome têm conteúdos diferentes. Eu mesclo os diretórios da seguinte maneira:

$ rsync -aicPb --remove-source-files SOURCE-DIR/ TARGET-DIR/

Este comando faz quase exatamente o que eu quero. O problema é que as extensões dos arquivos não são preservadas. Ou seja, o -bargumento faz com que TARGET-DIR/pictureA.jpgseja renomeado para TARGET-DIR/pictureA.jpg~, quando SOURCE-DIR/pictureA.jpgfor copiado para TARGET-DIR/.

Existe alguma maneira de preservar as extensões de arquivo ao rsyncrenomear arquivos duplicados? Por exemplo, TARGET-DIR/pictureA.jpgdeve ser renomeado para TARGET-DIR/pictureA~.jpg.

files
  • 2 respostas
  • 28 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve