os
Module os provides a platform-independent interface to operating system
functionality.
By default, this module interacts with the host operating system normally by
calling the underlying Go os package. However, alternative OS abstraction
layers may be used via the Go WithOS (opens in a new tab) function. This assists with sandboxing scripts and providing
access to object storage like AWS S3 via a filesystem-like interface.
Attributes
stdin
stdin is an open file pointing to the standard input for the process.
>>> os.stdin.read()
byte_slice("hello world")stdout
stdout is an open file pointing to the standard output for the process.
>>> os.stdout.write("hello world")
11err_not_exist
err_not_exist is an error indicating that a file or directory does not exist.
>>> if errors.is(err, os.err_not_exist) { print("file does not exist") }err_exist
err_exist is an error indicating that a file or directory already exists.
>>> if errors.is(err, os.err_exist) { print("file already exists") }err_permission
err_permission is an error indicating that permission is denied.
>>> if errors.is(err, os.err_permission) { print("permission denied") }err_closed
err_closed is an error indicating that the file is already closed.
>>> if errors.is(err, os.err_closed) { print("file already closed") }err_invalid
err_invalid is an error indicating that the operation is invalid.
>>> if errors.is(err, os.err_invalid) { print("invalid operation") }err_no_deadline
err_no_deadline is an error indicating that no deadline is set.
>>> if errors.is(err, os.err_no_deadline) { print("no deadline set") }err_deadline_exceeded
err_deadline_exceeded is an error indicating that the deadline has been exceeded.
>>> if errors.is(err, os.err_deadline_exceeded) { print("deadline exceeded") }Functions
chdir
chdir(dir string)Changes the working directory to dir.
>>> os.chdir("/tmp")
>>> os.getwd()
"/tmp"create
create(name string) FileCreates or truncates the named file.
>>> f := os.create("foo.txt")
>>> f.write("hello world")
11
>>> f.close()environ
environ() listReturns a copy of strings representing the environment, in the form "key=value".
>>> os.environ()
["TERM=xterm-256color", "SHELL=/bin/bash", "USER=alice", ...]exit
exit(code int)Terminates the program with the given exit code.
>>> os.exit(0)getenv
getenv(key string) stringReturns the value of the environment variable key.
>>> os.getenv("USER")
"alice"getpid
getpid() intReturns the current process ID.
>>> os.getpid()
1234getuid
getuid() intReturns the current user ID.
>>> os.getuid()
501getwd
getwd() stringReturns the current working directory.
>>> os.getwd()
"/home/alice"hostname
hostname() stringReturns the host name reported by the kernel.
>>> os.hostname()
"alice-macbook-pro-1.local"mkdir_all
mkdir_all(path string, perm int)Creates a directory named path, along with any necessary parent directories.
>>> os.mkdir_all("/tmp/foo/bar", 0755)mkdir_temp
mkdir_temp(dir, prefix string) stringCreates a new temporary directory in the directory dir, using prefix to generate its name.
>>> os.mkdir_temp("/tmp", "foo")
"/tmp/foo4103914411"mkdir
mkdir(path string, perm int)Creates a new directory with the specified name and permission bits. If a permissions value is not specified, 0755 is used.
>>> os.mkdir("/tmp/foo", 0755)open
open(name string) FileOpens the named file.
>>> f := os.open("foo.txt")
>>> f.read()
byte_slice("hello world")
>>> f.close()read_dir
read_dir(name string) listReturns a list of directory entries sorted by filename. If a name is not specified, the current directory is used.
>>> os.read_dir("/tmp")
[dir_entry(name=foo.txt, type=regular), dir_entry(name=bar.txt, type=regular)]read_file
read_file(name string) byte_sliceReads the named file and returns its contents.
>>> os.read_file("/tmp/foo.txt")
byte_slice("hello world")remove
remove(name string)Removes the named file or empty directory.
>>> os.remove("/tmp/old/junk.txt")remove_all
remove_all(name string)Removes path and any children it contains.
>>> os.remove_all("/tmp/junk")rename
rename(old, new string)Renames (moves) old to new.
>>> os.rename("old.txt", "new.txt")setenv
setenv(key, value string)Sets the value of the environment variable key to value.
>>> os.setenv("USER", "bob")
>>> os.getenv("USER")
"bob"stat
stat(name string) FileInfoReturns a FileInfo describing the named file.
>>> os.stat("example.txt")
file_info(name=example.txt, mode=-rw-r--r--, size=84, mod_time=2023-08-06T08:45:56-04:00)symlink
symlink(old, new string)Creates a symbolic link new pointing to old.
>>> os.symlink("foo.txt", "bar.txt")temp_dir
temp_dir() stringReturns the default directory to use for temporary files.
>>> os.temp_dir()
"/tmp"unsetenv
unsetenv(key string)Unsets the environment variable key.
>>> os.unsetenv("USER")
>>> os.getenv("USER")
""user_cache_dir
user_cache_dir() stringReturns the default root directory to use for user-specific non-essential data.
>>> os.user_cache_dir()
"/home/alice/.cache"user_config_dir
user_config_dir() stringReturns the default root directory to use for user-specific configuration data.
>>> os.user_config_dir()
"/home/alice/.config"user_home_dir
user_home_dir() stringReturns the current user's home directory.
>>> os.user_home_dir()
"/home/alice"write_file
write_file(name string, data byte_slice / string)Writes the given byte_slice or string to the named file.
>>> os.write_file("example.txt", "hey!")
>>> os.read_file("example.txt")
byte_slice("hey!")current_user
current_user() mapReturns a map representing the current user.
>>> os.current_user()
{"gid": "20", "home_dir": "/Users/alice", "name": "Alice", "uid": "501", "username": "alice"}lookup_user
lookup_user(name string) mapLooks up a user by name and returns a map representation.
>>> os.lookup_user("bob")
{"gid": "20", "home_dir": "/Users/bob", "name": "Bob", "uid": "502", "username": "bob"}lookup_uid
lookup_uid(uid string) mapLooks up a user by user ID and returns a map representation.
>>> os.lookup_uid("501")
{"gid": "20", "home_dir": "/Users/alice", "name": "Alice", "uid": "501", "username": "alice"}lookup_group
lookup_group(name string) mapLooks up a group by name and returns a map representation.
>>> os.lookup_group("staff")
{"gid": "20", "name": "staff"}lookup_gid
lookup_gid(gid string) mapLooks up a group by group ID and returns a map representation.
>>> os.lookup_gid("20")
{"gid": "20", "name": "staff"}