| 305 | === find === |
| 306 | Searches for files in a directory hierarchy. The '''find''' takes a directory as an argument and will search in that directory and all of it's subdirectories for files that match the search criteria. If no directory is specified, the current directory is used. |
| 307 | |
| 308 | You can search for a file by name using the '''-name''' flag as your search criteria |
| 309 | {{{ |
| 310 | [tulaneID@cypress1 ~]$ find /home/tulaneID/ -name file1.txt |
| 311 | /home/tulaneID/dir1/file1.txt |
| 312 | [tulaneID@cypress1 ~]$ |
| 313 | }}} |
| 314 | |
| 315 | One can also search for all files that have a string of text in any portion of their name by using the star wildcard, e.g. we can find all the .txt files in our HOME directory and it's subdirectories. Note that quotes are required around our criteria as we are now using a ''regular expression'' |
| 316 | |
| 317 | {{{ |
| 318 | [tulaneID@cypress1 ~]$ find /home/tulaneID/ -name "*.txt" |
| 319 | /home/tulaneID/textfile02.txt |
| 320 | /home/tulaneID/dir1/file1.txt |
| 321 | /home/tulaneID/examples/alphabet.txt |
| 322 | /home/tulaneID/examples/numbers.txt |
| 323 | /home/tulaneID/textfile01.txt |
| 324 | [tulaneID@cypress1 ~]$ |
| 325 | }}} |
| 326 | |
| 327 | These are just a couple examples of the many ways '''find''' can be used. A nice short tutorial on '''find''' with a lot of examples can be found at http://alvinalexander.com/unix/edu/examples/find.shtml |
| 328 | |
| 330 | |
| 331 | === chmod === |
| 332 | The '''chmod''' commands allow a user to modify the permissions of files and directories that they own. To see the permissions of a file/directory we can use the '''ls -l''' command |
| 333 | |
| 334 | {{{ |
| 335 | [tulaneID@cypress1 ~]$ ls -l |
| 336 | total 4 |
| 337 | -rw-r--r-- 1 tulaneID workshop 0 Aug 18 21:50 a.out |
| 338 | -rw-r--r-- 1 tulaneID workshop 0 Aug 18 21:50 helloworld.c |
| 339 | -rw-r--r-- 1 tulaneID workshop 0 Aug 19 07:15 myscript.sh |
| 340 | drwxr-xr-x 2 tulaneID workshop 4096 Aug 18 21:37 NextDirectoryDown |
| 341 | -rw-r--r-- 1 tulaneID workshop 0 Aug 18 21:50 textfile01.txt |
| 342 | -rw-r--r-- 1 tulaneID workshop 0 Aug 18 21:50 textfile02.txt |
| 343 | [tulaneID@cypress1 ~]$ |
| 344 | }}} |
| 345 | |
| 346 | The ten left most characters describe your permissions. The first character describes the file type (- for a file, d for a directory). The next three describe the permissions for the user who owns the file, the middle three describe the permissions for the group that owns the file, and the last three describe the permissions for "others". The "r" denotes permission to read, the "w" means permission to write, and the "x" indicates permission to execute the file/directory. |
| 347 | |
| 348 | The change mode or '''chmod''' command allows us to alter those permissions. In the past one had to remember (or google) numeric codes that corresponded to permission states, but modern syntax allows for the addition and subtraction of permissions with greater ease. Now one needs only indicate whose permissions to change and what changes to make. For example, let's add executable permissions for the user to the file myscript.sh |
| 349 | |
| 350 | {{{ |
| 351 | [tulaneID@cypress1 ~]$ chmod u+x myscript.sh |
| 352 | [tulaneID@cypress1 ~]$ ls -l |
| 353 | total 4 |
| 354 | -rw-r--r-- 1 tulaneID workshop 0 Aug 18 21:50 a.out |
| 355 | -rw-r--r-- 1 tulaneID workshop 0 Aug 18 21:50 helloworld.c |
| 356 | -rwxr--r-- 1 tulaneID workshop 0 Aug 19 07:15 myscript.sh |
| 357 | drwxr-xr-x 2 tulaneID workshop 4096 Aug 18 21:37 NextDirectoryDown |
| 358 | -rw-r--r-- 1 tulaneID workshop 0 Aug 18 21:50 textfile01.txt |
| 359 | -rw-r--r-- 1 tulaneID workshop 0 Aug 18 21:50 textfile02.txt |
| 360 | }}} |
| 361 | |
| 362 | The user (and only the user) can now run the script myscript.sh as an executable. For a more complete introduction see http://alvinalexander.com/linux-unix/linux-chmod-command-permissions-file-directories |