Unix

Ims -  
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoir,

Je suis en licence et nous avons des cours sur les commandes Unix. J'ai fait quelques excercices avec mon professeur mais je n'ai pas eu le temps de lui poser quelques questions, je viens donc les poster ici sur ce forum en ésperant une réponse rapide et juste.

L'une des questions de l'excercice était : Quelle(s) commande(s) Unix devez-vous exécuter pour : Déplacer tous les fichiers commençant par d dans le répertoire Jeux. ( Il y a trois fichiers qui commençent par un d et l'un des trois est un fichier ). Est-ce possible à l'aide d'une seule commande ? Justifier votre réponse.
Je sais que la commande est rm car elle permet de déplacer des fichiers et des dossiers cependant je sais pas quelle est la justification. Est-ce parce que l'un des documents à déplacer est un dossier ? Est ce parce que la commande ne permet que de déplacer un par un les documents ? ( même si l'exercice n'est pas sur la commande chmod, est ce qu'on peut ne pas pouvoir déplacer un fichier a cause des droits ?

De plus, j'aimerais savoir quelle est la commande pour créer un fichier. Lors d'un excercice, nous avons répondu à la question : " Créez un répertoire nommé Bis puis créez dans ce répertoire un fichier nommé renseignement lié au fichier nommé identite ( sous /home/l1/dupond)" par :" mkdir ./Bis et ln ./identite ./Bis/Renseignement".

Merci d'avance.
PS: Je ne suis pas un utilisateur régulier de ce forum, j'éspère avoir posté au bon endroit ce topic.

6 réponses

bob031 Messages postés 8158 Date d'inscription   Statut Membre Dernière intervention   473
 
Bonjour,

Je sais que la commande est rm car elle permet de déplacer des fichiers et des dossiers

à ta place je réfléchirais à deux fois .... ^^

... pour copier, j'aurais plutôt utiliser la commande cp, mais bon ....

ensuite pour savoir ce que je peux faire avec la commande cp, j'aurais taper la commande suivante :

cp --help


il y a plusieurs options, peut-être de quoi y trouver son bonheur !
0
Ims
 
Ce n'est pas un copier qu'il me faut c'est un déplacement :x . De plus, je ne dispose pas d'Unix, comme dis plus haut nous "étudions" Unix en cours et nous avons fait des exercices écrit sur certaines des commandes qu'il comporte.
0
bob031 Messages postés 8158 Date d'inscription   Statut Membre Dernière intervention   473
 
Arff !

pour déplacer c'est la commande mv

si j'ai bien compris, vous étudiez Unix sans pratiquer ?

dans la mesure ou vous n'avez pas accès à une console UNIX, on peut retrouver ces mêmes informations sur le net (exemple ici avec la commande cp ..... histoire d'aller au bout du "sujet" ^^) :

http://pwet.fr/man/linux/commandes/cp/


un penguin sur la banquise !
0
Ims
 
Oula pardon, effectivement la commande ne va pas du tout ^^ je me suis tromper entre la commande rm et la commande mv ... Si, dans la réponse à ma première question j'avais utiliser la commande mv quelle aurait été la raison pour laquelle je ne pouvais pas déplacer tout les fichiers ( je rappelle qu'il y en a trois dont un dossier ).
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

Le problème n'est pas de ne pas pouvoir déplacer tous les fichiers et répertoires, ce que ferait la commande "mv" dans ton cas, mais de ne déplacer que les fichiers qui commencent par "d" mais pas les répertoires.

Illustration :

$ tree     # Affichage de l'arborescence
.
|-- dossierA
|   |-- fichierA.txt
|   |-- fichierB.txt
|   '-- fichierC.txt
|-- dossierB
|   |-- fichierA.txt
|   |-- fichierB.txt
|   '-- fichierC.txt
|-- durand.txt
'-- jeux

3 directories, 7 files

$ mv d* jeux/     # Déplacement des fichiers commençant par "d"

$ tree     # Résultat
.
'-- jeux
    |-- dossierA
    |   |-- fichierA.txt
    |   |-- fichierB.txt
    |   '-- fichierC.txt
    |-- dossierB
    |   |-- fichierA.txt
    |   |-- fichierB.txt
    |   '-- fichierC.txt
    '-- durand.txt

3 directories, 7 files

En fait il te faut avoir recours à la commande "find" qui elle peut différencier les fichiers des répertoires :

$ tree     # Affichage de l'arborescence
.
|-- dossierA
|   |-- fichierA.txt
|   |-- fichierB.txt
|   '-- fichierC.txt
|-- dossierB
|   |-- fichierA.txt
|   |-- fichierB.txt
|   '-- fichierC.txt
|-- durand.txt
'-- jeux

3 directories, 7 files

$ find . -maxdepth 1 -type f -name "d*"  -exec  mv -v {} jeux/ \;
'./durand.txt' -> 'jeux/durand.txt'

$ tree
.
|-- dossierA
|   |-- fichierA.txt
|   |-- fichierB.txt
|   '-- fichierC.txt
|-- dossierB
|   |-- fichierA.txt
|   |-- fichierB.txt
|   '-- fichierC.txt
'-- jeux
    '-- durand.txt

3 directories, 7 files

$

Là seul le fichier correspondant au paramètre "-type f" (f = fichier) sera déplacé dans le répertoire cible. L'option "-maxdepth 1" est là pour rester dans le répertoire courant et ne pas descendre récursivement dans les sous-répertoires (comportement par défaut).
0
bob031 Messages postés 8158 Date d'inscription   Statut Membre Dernière intervention   473
 
Hello zipe,

Très belle "illustration" .... c*n !!! ^^
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut Bobby,

Merci. Bien souvent les explications résident dans l'expérimentation et la mise en situation ;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ims
 
D'accord merci je viens de comprendre. Je te remercie beaucoup =). Quand est-il du deuxième exemple ? J'aimerais surtout savoir si il est possible de créer un fichier à partir de la commande mkdir =/ ? Ca me sembe un peu bizarre également que dans la correction on créait un fichier et en même temps un lien entre ce fichier et le répertoire avec la commande ln en faisant : ln ./identite ./Bis/Renseignement.
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Toutes les réponses sont là : http://pwet.fr/man/linux/commandes/ln/

;-))

PS. Sinon les commandes pour créer un fichier en temps normal :

touch fichier
> fichier
0
Ims
 
Merci infiniment. Bonne soirée à toi et bonne continuation.
0