10.14 Mojave comment cacher un fichier/dossier ?

Morebany

Membre actif
20 Mai 2017
275
6
55
bonjour,

Sous Linux,on transforme un fichier /dossier visible en caché en y ajoutant . en préfixe dans le nom.
Existe-t-til sous Mac OS une astuce analogue pour cacher volontairement un fichier/dossier visible?

merci de votre aide
 
Bonjour,

On fait exactement pareil sur macOS, mais on ne peut pas le faire dans le Finder. Il faut le faire dans Terminal, avec la commande mv. Prenons un exemple avec un fichier toto.txt qui est sur le bureau :
Bloc de code:
mv ~/Desktop/toto.txt ~/Desktop/.toto.txt
ce que tu peux faire pour éviter de taper le chemin complet, c'est de taper mv suivi d'un blanc, et de glisser le fichier dans la fenêtre de Terminal. Ça va alimenter le path. Ensuite, tu tapes à nouveau un blanc, tu glisses le même fichier dans la fenêtre, et tu reviens avec la flèche gauche jusqu'au début du nom, pour y ajouter le .
 
je cherche astuce ou programme shell dans le terminal permettant de réaliser ceci:
-je crée un dossier de nom blabla dans le bureau.
Je configure le navigateur web de manière à ce que tous les téléchargements atterrissent automatiquement dans ce dossier blabla.
-Si je cache maintenant avec la commande indiquée dans la réponse précédente le dossier blabla et que je télécharge un fichier,le dossier réapparaît instantanément avec son fichier téléchargé:ce que je ne souhaite pas !
Mon but est de créer un petit shell de manière à ce que le fichier soit téléchargé dans le dossier blabla mais en restant caché avec son fichier

Pour résoudre ceci,je pense qu'il faut manipuler astucieusement les droits attribués à ce dossier(je ne me rappelle plus:interdire les droits d'exécution ou d'écriture au dossier blabla) au moment où j'y télécharge un fichier
Ceci doit être facilement réalisable dans un script bash mais je n'y suis assez performant.

un script bash?
 
Dernière édition:
Suppose que tu crées un dossier blabla sur ton Bureau. Son adresse (raccourcie) est : ~/Desktop/blabla -->

- dans les Préférences de Safari (par exemple) => tu choisis le dossier blabla du Bureau comme destination des téléchargements

- dans le terminal > tu passes la commande :
Bloc de code:
chflags hidden ~/Desktop/blabla

  • qui sans modifier le nom du dossier (comme quand on ajoute un . en préfixe) => fixe dessus le flag:hidden (= attribut d'invisibilité). Cet attribut interdit l'affichage graphique du dossier par le Finder. À peine la commande exécutée => le dossier blabla disparaît de l'affiche.

- les téléchargements s'effectuent automatiquement dans blabla masqué sans démasquage.

- ton problème : c'est l'accès aux contenus du dossier masqué > le Finder ne "voyant" pas l'objet (par exemple si tu utilises la fonction : Aller au dossier et que tu saisisses l'adresse : ~/Bureau/blabla). Tu peux passer la commande de démasquage (inverse de celle de masquage) :
Bloc de code:
 chflags nohidden ~/Desktop/blabla
  • qui supprime le flag:hidden d'invisibilité. Mais ensuite il te faudrait remasquer le dossier blabla par la 1ère commande. Plus commode est la commande :
Bloc de code:
open ~/Desktop/blabla
  • qui force l'affichage graphique de l'espace de blabla dans une fenêtre du Finder (sans démasquer le dossier). Il te suffirait alors de te fabriquer (dans l'Éditeur de script) une mini application dont le code serait :
Bloc de code:
do shell script "open ~/Desktop/blabla"
  • et de l'enregistrer au format "Application" à la localisation de ton choix. Un double- clic sur ton application => affiche directement l'espace de blabla masqué dans une fenêtre du Finder sans démasquage du dossier. Fermer la fenêtre du Finder => fait disparaître cet affichage de l'espace de blabla.
 
  • J’aime
Réactions: pouppinou
Je ne vois pas comment ce serait possible. Si on déplace ou qu'on renomme un dossier avec la commande mv, le dossier avec l'ancien nom n'existe plus. Ça coince donc au niveau du navigateur, sauf à changer son paramétrage à chaque fois.
Peut-être avec un script Apple Script, si le dictionnaire de l'application contient une commande permettant de modifier le path du dossier de téléchargement.

edit : donc avec la commande mv pas possible, mais avec chflags une possibilité.
 
Dernière édition:
D'accord !
et un petit script qui demande un mot de passe prédéfini pour permettre la ligne de commande:
chflags nohidden ~/Desktop/blabla ?
 
Dernière édition:
La ligne de code pour une application "ouverte" de démasquage de blabla (par suppression du flag:hidden => serait :
Bloc de code:
do shell script "chflags nohidden ~/Desktop/blabla"

  • pour des scripts élaborés demandant un mot-de-passe --> il faudrait que tu demandes à Zeltron. Pour ma part : je m'en suis toujours tenu à un usage aphoristique du terminal.
  • mais tu peux masquer ton application en utilisant le procédé décrit par Edgar Poe dans la "Lettre volée" --> tu mets ton application bien en évidence sur le Bureau > sauf que son intitulé et son icône d'objet ne trahissent pas la fonction applicative de l'objet.
 
merci !
Evidemment,je ne parlais pas du mot de passe administrateur

Il y un autre petit problème:
la commande
mv dossier .dossier
fonctionne avec un dossier vide
Mais quand le dossier contient un fichier,ça ne fonctionne plus !(directory no empty)
Y a -t-il moyen de remédier à cela avec ce genre de commande mv?
 
Dernière édition:
non c'est bon ça marche:
mv dossier .dossier
cache le dossier ainsi que son contenu.

Par contre,je veux bien le script pour utiliser le mot de passe
 
Dernière édition:
Tu voulais le script pour cacher avec le flag:hidden un dossier blabla du Bureau ?
Bloc de code:
do shell script "chflags hidden ~/Desktop/blabla"

  • note : si tu veux convertir ces mini-scripts en applications => une fois le texte collé pour chacun dans la fenêtre de l'Éditeur de script > tu presses l'icône de pic égrisoir pour compiler > puis menu : Fichier > Exporter > et option de format : "Application" (et pas Script). Le nom que tu veux. La localisation que tu veux.
 
non pas de script(tant pis) ;seule la commande :
chflags hidden dossier
me suffit.
Je veux l'équivalent(s'il existe) de cette commande :
-sous Linux(commande bash)
-sous Windows récent(commande batch)
 
Dernière édition: