Download presentation
Presentation is loading. Please wait.
Published byDwayne Reeves Modified over 9 years ago
1
CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting Directories
2
CIT 383: Administrative Scripting Topics 1.Directories 2.Inodes 3.File Management 4.Command Line Arguments
3
CIT 383: Administrative Scripting Directories Directory: table of name to inode mappings $ ls –i / 2272929 bin 65409 boot 49057 cdrom 2260 dev 850305 etc 2 home 2371041 initrd 49075 initrd.img 49058 initrd.img.old 948417 lib
4
CIT 383: Administrative Scripting Accessing Directories thisdir = Dir.new(pathname) absolutedir = Dir.new(‘/home/smi/dir1’) relativedir = Dir.new(‘smi/dir1’) currentdir = Dir.new(‘.’) uponedir = Dir.new(‘..’) Methods entries : returns array of filenames each : iterates over each file in directory
5
CIT 383: Administrative Scripting Inodes An inode is a disk structure that contains Size of the file in bytes. Device ID that identifies device where file is located. UID of the file’s owner. GID of the file’s group. File mode (permissions.) Timestamps ctime: inode change time mtime: time file content was last modified atime: time file content was last accessed Reference count that identifies how many directory entries point to inode. Pointers to disk blocks containing file data.
6
CIT 383: Administrative Scripting Hard and Symbolic Links A hard link is A directory entry that points to an inode. Deleting a file with rm just removes the directory entry. File data is not removed until all links removed. A symbolic link is A file that contains a pathname. Deleting the link does not affect the file. Deleting a file with rm invalidates the symbolic link but does not remove it from filesystem.
7
CIT 383: Administrative Scripting Basic File Permissions Three sets of permissions: owner, group, world Each set represented by an octal digit. Each permission (r,w,x) one bit in octal digit. Special permissions: setuid, setgid, sticky. ex: chmod 0644 file u: rw, g: r, o: r ex: chmod 0711 bin u: rwx, g: x, o: x 4readsetuid 2writesetgid 1executesticky
8
CIT 383: Administrative Scripting File::Stat The File::Stat class allows access to inodes stat = File::Stat.new(pathname) OR file = File.new(pathname) stat = file.stat Methods size : size of file in bytes uid : UID of file owner gid : GID of file owner mode : file permissions in octal mtime,ctime,atime : file timestamps
9
CIT 383: Administrative Scripting Querying File Attributes directory? – Is file a directory? symlink? – Is file a symbolic link? file? – Is file an ordinary file (not a directory, device, or symlink)? readable? – Is file readable by me? writable? – Is file writable by me? executable? – Is file executable by me? setuid? – Is file setuid? setgid? – Is file setgid? sticky? – Is the sticky bit set?
10
CIT 383: Administrative Scripting File Management The FileUtils class provides methods that emulate the functionality of UNIX commands: chmod chown cp ln mkdir mv rm rmdir
11
CIT 383: Administrative Scripting Command Line Arguments Using command line arguments./test.rb arg1 arg2 arg3 Accessing command line arguments Ruby provides them via the ARGV array: ARGV.each do |arg| puts arg end
12
CIT 383: Administrative ScriptingSlide #12 References 1.Michael Fitzgerald, Learning Ruby, O’Reilly, 2008. 2.David Flanagan and Yukihiro Matsumoto, The Ruby Programming Language, O’Reilly, 2008. 3.Hal Fulton, The Ruby Way, 2 nd edition, Addison- Wesley, 2007. 4.Robert C. Martin, Clean Code, Prentice Hall, 2008. 5.Dave Thomas with Chad Fowler and Andy Hunt, Programming Ruby, 2 nd edition, Pragmatic Programmers, 2005.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.